home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 February / Macworld (1999-02).dmg / Games World / New Levels / Duke Nukem / blades / GAME.CON < prev    next >
Text File  |  1996-06-20  |  102KB  |  3,791 lines

  1.  
  2. /*
  3. --------------------------------------------------------------------------------
  4. Duke Nukem 3D GAME.CON file.
  5. By Todd Replogle
  6. (c) 1996 3D Realms Entertainment
  7. --------------------------------------------------------------------------------
  8.  
  9.  
  10. IMPORTANT NOTICE IF YOU USE MODIFIED .CON FILES
  11.  
  12. If you are playing a MULTIPLAY game (Dukematch or Co-op) and you are
  13. using *modified* .CON files (USER.CON, GAME.CON, DEFS.CON), then each
  14. multiplayer must be using the EXACT SAME .CON files, or the game will
  15. get out of sync and/or develop interesting problems.
  16.  
  17. 3D Realms encourages you to experiment freely with the parameters
  18. contained in this file, and to share your discoveries with the rest
  19. of the world.  However, BE ADVISED that 3D Realms does NOT offer 
  20. any technical support on how to use this file or other user-modifiable 
  21. features of this game.  Do NOT call 3D Realms or Apogee Software 
  22. for advice or help with this subject.  
  23.  
  24. You make modifications to this and other files at your own risk. 
  25. It is recommended that you first make a backup copy of this, or
  26. any .CON files before making any changes.
  27.  
  28. --------------------------------------------------------------------------------
  29.  
  30. */
  31.  
  32. include DEFS.CON
  33. include USER.CON
  34.  
  35. state genericshrunkcode
  36.     ifcount 32 { ifpdistl SQUISHABLEDISTANCE pstomp }
  37.     else { sizeto 9 8 spawn FRAMEEFFECT1 }
  38. ends
  39.  
  40. // JEM random goodie module
  41. // this is used by the goddess code.
  42. state GOODIES
  43.     ifrnd 8 { spawn BOOTS break }
  44.     ifrnd 8 { spawn SHIELD break }
  45.     ifrnd 8 { spawn HEATSENSOR break }
  46.     ifrnd 8 { spawn STEROIDS break }
  47.     ifrnd 8 { spawn AIRTANK break }
  48.     ifrnd 8 { spawn HOLODUKE break }
  49.     ifrnd 8 { spawn AMMO break }
  50.     ifrnd 8 { spawn AMMOLOTS break }
  51.     ifrnd 8 { spawn RPGAMMO break }
  52.     ifrnd 8 { spawn BATTERYAMMO break }
  53.     ifrnd 8 { spawn CRYSTALAMMO break }
  54.     ifrnd 8 { spawn DEVISTATORAMMO break }
  55.     ifrnd 8 { spawn SHOTGUNAMMO break }
  56.     ifrnd 8 { spawn FIRSTGUNSPRITE break }
  57.     ifrnd 8 { spawn SHOTGUNSPRITE break }
  58.     ifrnd 8 { spawn CHAINGUNSPRITE break }
  59.     ifrnd 8 { spawn TRIPBOMBSPRITE break }
  60.     ifrnd 8 { spawn HBOMBAMMO break }
  61.     ifrnd 8 { spawn RPGSPRITE break }
  62.     ifrnd 8 { spawn FREEZESPRITE break }
  63.     ifrnd 8 { spawn SHRINKERSPRITE break }
  64.     ifrnd 8 { spawn JETPACK break }
  65.     ifrnd 8 { spawn COLA break }
  66.     ifrnd 8 { spawn SIXPAK break }
  67.     ifrnd 8 { spawn FIRSTAID break }
  68.     ifrnd 8 { spawn ATOMICHEALTH break }
  69.  
  70. ends
  71.  
  72.  
  73. // end of random goodie module
  74.  
  75.  
  76. move SHUTTLEVELS 16
  77.  
  78. actor SPACESHUTTLE TOUGH
  79.   //  ifmove 0 { move SHUTTLEVELS getv geth }
  80. enda
  81.  
  82. actor SATELLITE TOUGH
  83.   //  ifmove 0 { move SHUTTLEVELS getv geth }
  84.   //  ifcount 120 move SHUTTLEVELS getv geth randomangle
  85. enda
  86.  
  87. action ASHARKCRUZING 0 8 5 1 24
  88. action ASHARKFLEE    0 8 5 1 10
  89. action ASHARKATACK   0 8 5 1 6
  90. action ASHARKSHRUNK  0 8 5 1 24
  91. action ASHARKFROZEN  0 1 5 1 24
  92.  
  93. move SHARKVELS 24
  94. move SHARKFASTVELS 72
  95. move SHARKFLEEVELS 40
  96.  
  97. actor SHARK SHARKSTRENGTH ASHARKCRUZING SHARKVELS randomangle geth
  98.     ifaction ASHARKSHRUNK
  99.     {
  100.         ifcount SHRUNKDONECOUNT action ASHARKCRUZING
  101.         else ifcount SHRUNKCOUNT sizeto 24 24
  102.         else state genericshrunkcode
  103.     }
  104.     else ifaction ASHARKFROZEN
  105.     {
  106.         fall
  107.  
  108.         ifcount THAWTIME { action ASHARKFLEE getlastpal }
  109.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  110.  
  111.         ifhitweapon
  112.         {
  113.             ifwasweapon FREEZEBLAST { strength 0 break }
  114.             lotsofglass 30
  115.             sound GLASS_BREAKING
  116.             killit
  117.         }
  118.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  119.         break
  120.     }
  121.     else ifaction ASHARKFLEE
  122.     {
  123.         ifcount 16 ifrnd 48 { action ASHARKCRUZING move SHARKVELS randomangle geth }
  124.     }
  125.     else ifaction ASHARKCRUZING
  126.     {
  127.         ifcansee ifcount 48 ifrnd 2 { action ASHARKATACK move SHARKFASTVELS faceplayerslow getv break }
  128.         ifcount 32 ifnotmoving
  129.         {
  130.             ifrnd 128 move SHARKVELS randomangle geth
  131.             else move SHARKFASTVELS randomangle geth
  132.         }
  133.     }
  134.     else ifaction ASHARKATACK
  135.     {
  136.         ifcount 4
  137.         {
  138.             ifpdistl 1280
  139.             {
  140.                 ifp palive ifcanshoottarget
  141.                 {
  142.                     sound DUKE_GRUNT
  143.                     palfrom 32 32
  144.                     addphealth SHARKBITESTRENGTH
  145.                 }
  146.                 action ASHARKFLEE
  147.                 move SHARKFLEEVELS fleeenemy
  148.             }
  149.         }
  150.         else ifnotmoving
  151.             { ifcount 32 { action ASHARKCRUZING move SHARKVELS randomangle geth } }
  152.         else ifcount 48 ifrnd 2
  153.             { action ASHARKCRUZING move SHARKFASTVELS randomangle geth }
  154.     }
  155.  
  156.     ifhitweapon
  157.     {
  158.         ifdead
  159.             { sound SQUISHED guts JIBS6 5 killit }
  160.         else
  161.         {
  162.             ifwasweapon SHRINKSPARK
  163.             {
  164.                 action ASHARKSHRUNK
  165.                 sound ACTOR_SHRINKING
  166.             }
  167.             else ifwasweapon FREEZEBLAST
  168.             {
  169.                 action ASHARKFROZEN
  170.                 sound SOMETHINGFROZE
  171.                 move 0
  172.             }
  173.             else move SHARKVELS randomangle geth
  174.         }
  175.     }
  176. enda
  177.  
  178.  
  179. action BLIMPWAITTORESPAWN
  180.  
  181. state blimphitstate
  182.     cstat 0
  183.     spawn FIRSTGUNSPRITE
  184.     spawn EXPLOSION2
  185.  
  186.     debris SCRAP1 40            // Weapons and ammo!
  187.     debris SCRAP2 32
  188.     debris SCRAP3 32
  189.     debris SCRAP4 32
  190.     debris SCRAP5 32
  191.  
  192.     sound PIPEBOMB_EXPLODE
  193.     ifrespawn { action BLIMPRESPAWNTIME move 0 cstat 32768 }
  194.     else killit
  195. ends
  196.  
  197. actor BLIMP 1
  198.  
  199.     ifaction BLIMPWAITTORESPAWN
  200.     {
  201.         ifcount RESPAWNACTORTIME
  202.         {
  203.             action 0
  204.             cstat 0
  205.             move 0
  206.         }
  207.         break
  208.     }
  209.  
  210.     ifhitweapon
  211.     {
  212.         ifwasweapon RADIUSEXPLOSION state blimphitstate
  213.         ifwasweapon RPG state blimphitstate
  214.         strength 1
  215.     }
  216. enda
  217.  
  218.  
  219.  
  220. state rats
  221.     ifrnd 128 spawn RAT
  222.     ifrnd 128 spawn RAT
  223.     ifrnd 128 spawn RAT
  224.     ifrnd 128 spawn RAT
  225.     ifrnd 128 spawn RAT
  226.     ifrnd 128 spawn RAT
  227.     ifrnd 128 spawn RAT
  228.     ifrnd 128 spawn RAT
  229. ends
  230.  
  231. move RESPAWN_ACTOR_FLAG
  232.  
  233. action RUBCANDENT 1 1 1 1 1
  234. action RUBCAN
  235.  
  236. actor RUBBERCAN WEAK
  237.     ifaction RUBCANDENT { ifactioncount 16 { strength 0 action RUBCAN break } }
  238.     else ifhitweapon
  239.     {
  240.         ifwasweapon RADIUSEXPLOSION { state rats ifrnd 48 spawn BURNING debris SCRAP3 12 killit }
  241.         else action RUBCANDENT
  242.     }
  243. enda
  244.  
  245. state headhitstate
  246. // Unrem the following line to involving screen tilting during
  247. // low player hitpoint damage.
  248.  
  249.  
  250. // wackplayer
  251.  
  252.  
  253. ends
  254.  
  255.  
  256. action EXPBARRELFRAME         0   2   1   1   15
  257. actor EXPLODINGBARREL 26
  258.     fall
  259.     ifaction EXPBARRELFRAME
  260.     {
  261.         ifactioncount 2
  262.         {
  263.             hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  264.             spawn EXPLOSION2
  265.             debris SCRAP2 2
  266.             sound PIPEBOMB_EXPLODE
  267.             killit
  268.         }
  269.         break
  270.     }
  271.     ifsquished
  272.     {
  273.         debris SCRAP1 5
  274.         killit
  275.         break
  276.     }
  277.     ifhitweapon
  278.         action EXPBARRELFRAME
  279. enda
  280.  
  281. action BURNING_FLAME    0   12   1   1   2
  282. move BURNING_VELS 
  283.  
  284. state burningstate
  285.  
  286.     ifgapzl 16 break
  287.     ifpdistg 10240 break
  288.  
  289.     ifcount 128
  290.     {
  291.         ifspawnedby TIRE
  292.         {
  293.             ifactioncount 512
  294.             {
  295.                 sizeto 16 16
  296.                 killit
  297.             }
  298.             ifrnd 16 sizeto 64 48
  299.         }
  300.         else
  301.         {
  302.             sizeto 8 8 sizeto 8 8
  303.             ifactioncount 192 killit
  304.         }
  305.     }
  306.     else
  307.     {
  308.         ifmove 0 move BURNING_VELS
  309.  
  310.         ifspawnedby BOX
  311.             { sizeto 32 32 ifcount 32 { spawn SMALLSMOKE killit } }
  312.         else ifspawnedby TREE1 sizeto 96 96
  313.         else ifspawnedby TREE2 sizeto 96 96
  314.         else ifspawnedby APLAYER { sizeto 40 40 sizeto 40 40 }
  315.         else sizeto 52 52
  316.         ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 24 16 }
  317.     }
  318.  
  319. ends
  320.  
  321. actor BURNING WEAK BURNING_FLAME
  322.     state burningstate
  323. enda
  324.  
  325. actor BURNING2 WEAK BURNING_FLAME
  326.     state burningstate
  327. enda
  328.  
  329. action TOILETWATERFRAMES 0 4 1 1 1
  330. actor TOILETWATER 0 TOILETWATERFRAMES
  331.     ifpdistl 8192
  332.     {
  333.         soundonce WATER_GURGLE
  334.         ifspawnedby TOILET sizeto 34 34
  335.         else
  336.         {
  337.             ifspawnedby WATERFOUNTAINBROKE
  338.                 sizeto 6 15
  339.             else ifspawnedby TOILETWATER { } else sizeto 24 32
  340.         }
  341.  
  342.         ifp palive ifpdistl RETRIEVEDISTANCE ifp pfacing ifactioncount 32
  343.             ifphealthl MAXPLAYERHEALTH ifhitspace ifcansee
  344.         {
  345.             addphealth 1
  346.             globalsound DUKE_DRINKING
  347.             resetactioncount
  348.         }
  349.     }
  350. enda
  351.  
  352. action WOODENHORSEFRAME  0   1   4
  353. action WOODENFALLFRAME  122  1   5
  354.  
  355. actor HORSEONSIDE WEAKEST cactor WOODENHORSE action WOODENFALLFRAME enda
  356. actor WOODENHORSE WEAK WOODENHORSEFRAME
  357.     fall
  358.     ifhitweapon
  359.     {
  360.         ifdead
  361.         {
  362.             debris SCRAP1 4
  363.             debris SCRAP2 3
  364.             killit
  365.         }
  366.         else action WOODENFALLFRAME
  367.     }
  368. enda
  369.  
  370. state steamcode
  371.     ifpdistl 8192 soundonce STEAM_HISSING
  372.  
  373.     ifcount 20
  374.     {
  375.         resetcount
  376.         ifp palive ifpdistl 1024
  377.         {
  378.             addphealth -1
  379.             palfrom 16 16
  380.         }
  381.     }
  382.     else
  383.     {
  384.         ifspawnedby STEAM break ifspawnedby CEILINGSTEAM break
  385.         sizeto 24 24
  386.     }
  387. ends
  388.  
  389. action STEAMFRAMES      0       5       1       1       1
  390. actor STEAM 0 STEAMFRAMES
  391.     state steamcode
  392. enda
  393.  
  394. actor CEILINGSTEAM 0 STEAMFRAMES
  395.     state steamcode
  396. enda
  397.  
  398. actor WATERBUBBLEMAKER 0 0 randomangle
  399.     ifpdistl 3084 ifrnd 24 spawn WATERBUBBLE
  400. enda
  401.  
  402. action BUBBLE
  403. action CRACKEDBUBBLE    1
  404. move BUBMOVE           -10 -36
  405. move BUBMOVEFAST           -10 -52
  406.  
  407. actor WATERBUBBLE 0 BUBBLE BUBMOVE getv geth randomangle
  408.  
  409.     ifaction CRACKEDBUBBLE
  410.     {
  411.         ifinwater ifrnd 192 killit
  412.         ifactioncount 7 killit
  413.     }
  414.     else
  415.     {
  416.         ifcount 4
  417.         {
  418.             ifrnd 192 move BUBMOVE getv geth randomangle
  419.             else move BUBMOVEFAST getv geth randomangle
  420.             resetcount
  421.         }
  422.  
  423.         ifonwater
  424.         {
  425.             iffloordistl 8 action CRACKEDBUBBLE
  426.         }
  427.         else ifactioncount 40 action CRACKEDBUBBLE
  428.     }
  429. enda
  430.  
  431.  
  432. move SMOKEVEL 8 -16
  433. move ENGINE_SMOKE 64 -64
  434. move SMOKESHOOTOUT -192
  435. action SMOKEFRAMES 0 4 1 1 10
  436. actor SMALLSMOKE 0 SMOKEFRAMES
  437.     ifmove 0
  438.     {
  439.         ifspawnedby RECON
  440.             move SMOKESHOOTOUT geth
  441.         else ifspawnedby SECTOREFFECTOR
  442.             move ENGINE_SMOKE geth getv
  443.         else move SMOKEVEL geth getv faceplayer
  444.         ifspawnedby RPG
  445.         cstat 2
  446.     }
  447.     ifpdistl 1596 ifspawnedby RPG killit
  448.     ifactioncount 4 killit
  449. enda
  450.  
  451. action BARREL_DENTING  2 2 1 1 6
  452. action BARREL_DENTED   1
  453. action BARREL_DENTED2  2
  454.  
  455. move SPAWNED_BLOOD
  456.  
  457. actor NUKEBARRELDENTED WEAK
  458.     cactor NUKEBARREL
  459.     action BARREL_DENTED
  460. enda
  461.  
  462. actor NUKEBARRELLEAKED WEAK
  463.     cactor NUKEBARREL
  464.     action BARREL_DENTED2
  465. enda
  466.  
  467. actor NUKEBARREL MEDIUMSTRENGTH
  468.     ifsquished
  469.     {
  470.         debris SCRAP1 32
  471.         spawn BLOODPOOL
  472.         spawn OOZ
  473.         killit
  474.     }
  475.     fall
  476.     ifaction BARREL_DENTING
  477.     {
  478.         ifactioncount 2
  479.         {
  480.             debris SCRAP1 10
  481.             ifrnd 2 spawn BLOODPOOL
  482.             killit
  483.         }
  484.     }
  485.     else ifhitweapon
  486.     {
  487.         ifdead
  488.         {
  489.             sound VENT_BUST
  490.  
  491.             ifrnd 128
  492.                 spawn BLOODPOOL
  493.             action BARREL_DENTING
  494.         }
  495.         else
  496.         {
  497.             ifaction 0
  498.                 action BARREL_DENTED
  499.             else ifaction BARREL_DENTED
  500.             {
  501.                 action BARREL_DENTED2
  502.                 spawn BLOODPOOL
  503.             }
  504.             else ifaction BARREL_DENTED2
  505.                 action BARREL_DENTING
  506.         }
  507.     }
  508. enda
  509.  
  510. state burningbarrelcode
  511.     fall
  512.     ifcount 32
  513.     {
  514.         resetcount
  515.         ifp palive ifpdistl 1480 ifp phigher
  516.         {
  517.             addphealth -1
  518.             palfrom 16 16
  519.             ifrnd 96 sound DUKE_LONGTERM_PAIN
  520.         }
  521.     }
  522.     ifhitweapon
  523.     {
  524.         sound VENT_BUST
  525.         debris SCRAP1 10
  526.         ifrnd 128 spawn BURNING
  527.         else spawn BURNING2
  528.         killit
  529.     }
  530. ends
  531.  
  532. actor FIREBARREL state burningbarrelcode enda
  533. actor FIREVASE state burningbarrelcode enda
  534.  
  535. action SHRINKERFRAMES 0 4 1 1 10
  536. actor SHRINKEREXPLOSION 0 SHRINKERFRAMES
  537.     ifactioncount 4 killit
  538. enda
  539.  
  540. action EXPLOSION_FRAMES 0 20 1 1  4
  541. actor EXPLOSION2 1 EXPLOSION_FRAMES
  542.     ifactioncount 20 killit
  543. enda
  544.  
  545. actor EXPLOSION2BOT 1 EXPLOSION_FRAMES
  546.     ifactioncount 20 killit
  547. enda
  548.  
  549. action FFLAME_FR 0 16 1 1 1
  550. action FFLAME 0 1 1 1 1
  551.  
  552. actor FLOORFLAME 0 FFLAME_FR
  553.         ifaction FFLAME_FR
  554.         {
  555.                 ifpdistl 1024 hitradius 1024 WEAKEST WEAKEST WEAKEST WEAKEST
  556.                 ifactioncount 16
  557.                     action FFLAME
  558.         }
  559.         ifaction FFLAME ifrnd 4
  560.         {
  561.              action FFLAME_FR
  562.              sound CAT_FIRE
  563.              resetactioncount
  564.         }
  565.  
  566. enda
  567.  
  568. state ROTFIRE
  569.         ifspritepal 19  { sound BOS1_ATTACK2 shoot RPG }
  570.         else ifspritepal 18 { sound CAPT_ATTACK shoot SHOTSPARK1 }
  571.         else ifspritepal 17 { sound ITEM_SPLASH shoot FREEZEBLAST }
  572.         else { sound PRED_ATTACK shoot FIRELASER }
  573. ends
  574.  
  575.  
  576. action ASATNSPIN   0 5 1 1 4
  577. action ASATSHOOTING -10 3 5 1 40
  578. action ASATWAIT 0 1 5 1 1
  579. move TURRVEL
  580.  
  581. actor ROTATEGUN ROTTURRETSTRENGTH
  582. // ASATSHOOTING TURRVEL faceplayer
  583.  
  584.     ifaction 0
  585.     {
  586.         action ASATSHOOTING
  587.         move TURRVEL faceplayer
  588.     }
  589.     else ifaction ASATNSPIN
  590.         { ifactioncount 32 { action ASATWAIT move TURRVEL faceplayer } }
  591.     else ifaction ASATSHOOTING
  592.     {
  593.         ifactioncount 12 { ifrnd 32 action ASATWAIT }
  594.         ifcount 32 resetcount
  595.         else ifcount 16 { ifcount 17 { } else { state ROTFIRE } }
  596.         else ifcount 4 { ifcount 5 { } else { ifcansee ifcanshoottarget { state ROTFIRE } } }
  597.     }
  598.     else ifaction ASATWAIT
  599.         { ifactioncount 64 ifrnd 32 ifp palive ifcansee { action ASATSHOOTING move TURRVEL faceplayer } }
  600.     ifhitweapon { ifdead { addkills 1 sound LASERTRIP_EXPLODE debris SCRAP1 15 spawn EXPLOSION2 killit }
  601.         else { action ASATNSPIN debris SCRAP1 4 } move 0 }
  602.  
  603. enda
  604.  
  605.  
  606.  
  607.  
  608.  
  609. action RIP_F 0 8 1 1 1
  610. actor FORCERIPPLE 0 RIP_F
  611.     ifactioncount 8 killit
  612. enda
  613.  
  614. action TRANSFOWARD 0  6  1  1  2
  615. action TRANSBACK   5  6  1 -1  2
  616. actor TRANSPORTERSTAR 0 TRANSFOWARD
  617.     ifaction TRANSFOWARD
  618.     {
  619.         ifactioncount 6
  620.             action TRANSBACK
  621.     }
  622.     else
  623.         ifactioncount 6 killit
  624. enda
  625.  
  626. action BEAMFOWARD  0  4  1  1  9
  627. actor TRANSPORTERBEAM 0 BEAMFOWARD
  628.     sizeto 32 64 sizeto 32 64 sizeto 32 64
  629.     ifactioncount 4 killit
  630. enda
  631.  
  632. state getcode
  633.     ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
  634.     else globalsound DUKE_GET
  635.     palfrom 16 0 32
  636.     ifrespawn
  637.     {
  638.         move RESPAWN_ACTOR_FLAG
  639.         spawn RESPAWNMARKERRED
  640.         cstat 32768
  641.     }
  642.     else killit
  643. ends
  644.  
  645. state randgetweapsnds
  646.     ifrnd 64 globalsound DUKE_GETWEAPON1
  647.     else ifrnd 96 globalsound DUKE_GETWEAPON2
  648.     else ifrnd 128 globalsound DUKE_GETWEAPON3
  649.     else ifrnd 140 globalsound DUKE_GETWEAPON4
  650.     else globalsound DUKE_GETWEAPON6
  651. ends
  652.  
  653. state getweaponcode
  654.  
  655.     state randgetweapsnds
  656.  
  657.     palfrom 32 0 32
  658.     ifgotweaponce 1 break
  659.     ifrespawn
  660.     {
  661.         move RESPAWN_ACTOR_FLAG
  662.         spawn RESPAWNMARKERRED
  663.         cstat 32768
  664.     }
  665.     else killit
  666. ends
  667.  
  668.  
  669. state respawnit
  670.     ifcount RESPAWNITEMTIME { spawn TRANSPORTERSTAR move 0 cstat 0 sound TELEPORTER }
  671. ends
  672.  
  673. state quikget
  674.     ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
  675.     else globalsound DUKE_GET
  676.     palfrom 16 0 32
  677.     killit
  678. ends
  679.  
  680. state quikweaponget
  681.     state randgetweapsnds
  682.     palfrom 32 0 32
  683.     ifgotweaponce 1 break
  684.     killit
  685. ends
  686.  
  687. actor STEROIDS
  688.     fall
  689.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  690.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE
  691.         ifpinventory GET_STEROIDS STEROID_AMOUNT ifcanseetarget
  692.     {
  693.         addinventory GET_STEROIDS STEROID_AMOUNT quote 37 state getcode
  694.         ifspawnedby STEROIDS state getcode
  695.         else state quikget
  696.     }
  697. enda
  698.  
  699. actor HEATSENSOR
  700.     fall
  701.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  702.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HEATS HEAT_AMOUNT
  703.         ifcanseetarget
  704.     {
  705.         addinventory GET_HEATS HEAT_AMOUNT quote 101 state getcode
  706.         ifspawnedby HEATSENSOR state getcode
  707.         else state quikget
  708.     }
  709. enda
  710.  
  711. actor BOOTS
  712.     fall
  713.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  714.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BOOTS BOOT_AMOUNT
  715.         ifcanseetarget
  716.     {
  717.         addinventory GET_BOOTS BOOT_AMOUNT quote 6
  718.         ifspawnedby BOOTS state getcode
  719.         else state quikget
  720.     }
  721. enda
  722.  
  723. actor SHIELD
  724.     fall
  725.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  726.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SHIELD SHIELD_AMOUNT
  727.         ifcanseetarget
  728.     {
  729.         ifspawnedby PIGCOP
  730.         {
  731.             ifrnd 128 addinventory GET_SHIELD PIG_SHIELD_AMOUNT1
  732.             else addinventory GET_SHIELD PIG_SHIELD_AMOUNT2
  733.             quote 104
  734.             sound KICK_HIT palfrom 24 0 32 killit
  735.         }
  736.         else addinventory GET_SHIELD SHIELD_AMOUNT quote 38
  737.         ifspawnedby SHIELD state getcode
  738.         else state quikget
  739.     }
  740. enda
  741.  
  742. actor AIRTANK
  743.     fall
  744.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  745.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SCUBA SCUBA_AMOUNT
  746.         ifcanseetarget
  747.     {
  748.         addinventory GET_SCUBA SCUBA_AMOUNT quote 39 state getcode
  749.         ifspawnedby AIRTANK state getcode
  750.         else state quikget
  751.     }
  752. enda
  753.  
  754. action HOLODUKE_FRAMES 0 4 1 1 8
  755. actor HOLODUKE 0 HOLODUKE_FRAMES
  756.     fall
  757.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  758.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HOLODUKE HOLODUKE_AMOUNT
  759.         ifcanseetarget
  760.     {
  761.         addinventory GET_HOLODUKE HOLODUKE_AMOUNT quote 51 state getcode
  762.         ifspawnedby HOLODUKE state getcode
  763.         else state quikget
  764.     }
  765. enda
  766.  
  767. actor JETPACK
  768.     fall
  769.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  770.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_JETPACK JETPACK_AMOUNT ifcanseetarget
  771.     {
  772.         addinventory GET_JETPACK JETPACK_AMOUNT quote 41 state getcode
  773.         ifspawnedby JETPACK state getcode
  774.         else state quikget
  775.     }
  776. enda
  777.  
  778. actor ACCESSCARD
  779.     fall
  780.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  781.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  782.     {
  783.         ifpinventory GET_ACCESS 0 break
  784.         addinventory GET_ACCESS 1
  785.         quote 43
  786.         state getcode
  787.     }
  788. enda
  789.  
  790. // test boss_recod
  791.  
  792.  
  793. actor AMMO
  794.     fall
  795.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  796.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  797.     {
  798.         addammo PISTOL_WEAPON PISTOLAMMOAMOUNT quote 65
  799.         ifspawnedby AMMO state getcode
  800.         else state quikget
  801.     }
  802. enda
  803.  
  804. actor FREEZEAMMO
  805.     fall
  806.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  807.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  808.     {
  809.         addammo FREEZE_WEAPON FREEZEAMMOAMOUNT quote 66
  810.         ifspawnedby FREEZEAMMO state getcode
  811.         else state quikget
  812.     }
  813. enda
  814.  
  815.  
  816.  
  817. actor SHOTGUNAMMO
  818.     fall
  819.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  820.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  821.     {
  822.         addammo SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 69
  823.         ifspawnedby SHOTGUNAMMO state getcode
  824.         else state quikget
  825.     }
  826. enda
  827.  
  828. actor AMMOLOTS
  829.     fall
  830.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  831.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  832.     {
  833.         addammo PISTOL_WEAPON 48 quote 65
  834.         ifspawnedby AMMOLOTS state getcode
  835.         else state quikget
  836.     }
  837. enda
  838.  
  839. actor CRYSTALAMMO
  840.     fall
  841.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  842.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  843.     {
  844.         addammo SHRINKER_WEAPON CRYSTALAMMOAMOUNT quote 78
  845.         ifspawnedby CRYSTALAMMO state getcode
  846.         else state quikget
  847.     }
  848. enda
  849.  
  850. actor BATTERYAMMO
  851.     fall
  852.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  853.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  854.     {
  855.         addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT quote 63
  856.         ifspawnedby BATTERYAMMO state getcode
  857.         else state quikget
  858.     }
  859. enda
  860.  
  861. actor DEVISTATORAMMO
  862.     fall
  863.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  864.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  865.     {
  866.         addammo DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 14
  867.         ifspawnedby DEVISTATORAMMO state getcode
  868.         else state quikget
  869.     }
  870. enda
  871.  
  872. actor RPGAMMO
  873.     fall
  874.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  875.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  876.     {
  877.         addammo RPG_WEAPON RPGAMMOBOX quote 64
  878.         ifspawnedby RPGAMMO state getcode
  879.         else state quikget
  880.     }
  881. enda
  882.  
  883. actor HBOMBAMMO
  884.     fall
  885.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  886.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  887.     {
  888.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  889.  
  890.         addweapon HANDBOMB_WEAPON 1 quote 55
  891.         addammo HANDBOMB_WEAPON HANDBOMBBOX
  892.  
  893.         ifspawnedby HBOMBAMMO state getweaponcode
  894.         else state quikweaponget
  895.     }
  896. enda
  897.  
  898. actor RPGSPRITE
  899.     fall
  900.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  901.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  902.     {
  903.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  904.  
  905.         addweapon RPG_WEAPON RPGAMMOBOX quote 56
  906.         ifspawnedby RPGSPRITE state getweaponcode
  907.         else state quikweaponget
  908.     }
  909. enda
  910.  
  911. // 531.89 GTE.
  912. // IMA.
  913. // PO BOX 4629
  914. // Rocford ill, 61110-4629
  915. // Ms. Lee
  916.  
  917. actor SHOTGUNSPRITE
  918.     fall
  919.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  920.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  921.     {
  922.         ifspawnedby PIGCOP
  923.         {
  924.             addweapon SHOTGUN_WEAPON 0
  925.             ifrnd 64 addammo SHOTGUN_WEAPON 4
  926.             else ifrnd 64 addammo SHOTGUN_WEAPON 3
  927.             else ifrnd 64 addammo SHOTGUN_WEAPON 2
  928.             else addammo SHOTGUN_WEAPON 1
  929.         }
  930.         else
  931.         {
  932.             ifgotweaponce 0 break // Multiplayer only
  933.             addweapon SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 57
  934.         }
  935.         ifspawnedby SHOTGUNSPRITE state getweaponcode
  936.         else state quikweaponget
  937.     }
  938. enda
  939.  
  940.  
  941.  
  942. actor SIXPAK
  943.     fall
  944.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  945.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH ifcanseetarget
  946.     {
  947.         addphealth 30 quote 62
  948.         ifspawnedby SIXPAK state getcode
  949.         else state quikget
  950.     }
  951. enda
  952.  
  953. actor COLA
  954.     fall
  955.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  956.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH // ifcanseetarget
  957.     {
  958.         addphealth 10 quote 61
  959.         ifspawnedby COLA state getcode
  960.         else state quikget
  961.     }
  962. enda
  963.  
  964. actor ATOMICHEALTH
  965.     fall
  966.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  967.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  968.         ifphealthl MAXPLAYERATOMICHEALTH
  969.     {
  970.         addphealth 50 quote 19
  971.         ifspawnedby ATOMICHEALTH state getcode
  972.         else state quikget
  973.     }
  974. enda
  975.  
  976.  
  977.  
  978.  
  979. actor FIRSTAID
  980.     fall
  981.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  982.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6
  983.         ifpinventory GET_FIRSTAID FIRSTAID_AMOUNT ifcanseetarget
  984.     {
  985.         addinventory GET_FIRSTAID FIRSTAID_AMOUNT quote 3
  986.  
  987.         ifspawnedby FIRSTAID state getcode
  988.         else state quikget
  989.     }
  990. enda
  991.  
  992.  
  993. actor FIRSTGUNSPRITE
  994.     fall
  995.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  996.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  997.     {
  998.         ifgotweaponce 0 break
  999.  
  1000.         addweapon PISTOL_WEAPON 48
  1001.         ifspawnedby FIRSTGUNSPRITE state getweaponcode
  1002.         else state quikweaponget
  1003.     }
  1004. enda
  1005.  
  1006.  
  1007. actor TRIPBOMBSPRITE
  1008.     fall
  1009.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1010.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1011.     {
  1012.         ifgotweaponce 0 break
  1013.  
  1014.         addweapon TRIPBOMB_WEAPON 1
  1015.         quote 58
  1016.         ifspawnedby TRIPBOMBSPRITE state getweaponcode
  1017.         else state quikweaponget
  1018.     }
  1019. enda
  1020.  
  1021. actor CHAINGUNSPRITE
  1022.     fall
  1023.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1024.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1025.     {
  1026.         ifgotweaponce 0 break
  1027.  
  1028.         addweapon CHAINGUN_WEAPON 50 quote 54
  1029.         ifspawnedby CHAINGUNSPRITE state getweaponcode
  1030.         else state quikweaponget
  1031.     }
  1032. enda
  1033.  
  1034.  
  1035.  
  1036. actor SHRINKERSPRITE
  1037.     fall
  1038.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1039.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1040.     {
  1041.         ifgotweaponce 0 break
  1042.  
  1043.         addweapon SHRINKER_WEAPON 10 quote 60
  1044.         ifspawnedby SHRINKERSPRITE state getweaponcode
  1045.         else state quikweaponget
  1046.     }
  1047. enda
  1048.  
  1049. actor FREEZESPRITE
  1050.     fall
  1051.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1052.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1053.     {
  1054.         ifgotweaponce 0 break
  1055.  
  1056.         addweapon FREEZE_WEAPON FREEZEAMMOAMOUNT quote 59
  1057.         ifspawnedby FREEZESPRITE state getweaponcode
  1058.         else state quikweaponget
  1059.     }
  1060. enda
  1061.  
  1062. actor DEVISTATORSPRITE
  1063.     fall
  1064.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1065.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1066.     {
  1067.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  1068.  
  1069.         addweapon DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 87
  1070.         ifspawnedby DEVISTATORSPRITE state getweaponcode
  1071.         else state quikweaponget
  1072.     }
  1073. enda
  1074.  
  1075.  
  1076. state firestate
  1077.  
  1078.     ifgapzl 16 break
  1079.     ifinwater killit
  1080.  
  1081.     ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 32 32 }
  1082.  
  1083.     ifactor FIRE ifspawnedby FIRE break
  1084.     else ifactor FIRE2 ifspawnedby FIRE2 break
  1085.  
  1086.     iffloordistl 128
  1087.     {
  1088.         ifcount 32 sizeto 8 8
  1089.         ifcount 64 killit
  1090.     }
  1091.     else killit
  1092.  
  1093. ends
  1094.  
  1095. action FIRE_FRAMES     -1 14 1 1 1
  1096. move FIREVELS
  1097. actor FIRE WEAK FIRE_FRAMES FIREVELS state firestate enda
  1098. actor FIRE2 WEAK FIRE_FRAMES FIREVELS state firestate enda
  1099.  
  1100. actor FECES
  1101.     ifcount 24
  1102.     {
  1103.         ifpdistl RETRIEVEDISTANCE
  1104.         {
  1105.             soundonce DUKE_STEPONFECES
  1106.             sound STEPNIT
  1107.  
  1108.             spawn BLOODPOOL   // Will be brown
  1109.             killit
  1110.         }
  1111.     }
  1112.     else sizeto 32 32
  1113. enda
  1114.  
  1115. state drop_ammo ifrnd SPAWNAMMOODDS spawn AMMO ends
  1116. state drop_battery ifrnd SPAWNAMMOODDS spawn BATTERYAMMO ends
  1117. state drop_sgshells ifrnd SPAWNAMMOODDS spawn SHOTGUNAMMO ends
  1118. state drop_shotgun ifrnd SPAWNAMMOODDS spawn SHOTGUNSPRITE ends
  1119. state drop_chaingun
  1120.     ifrnd SPAWNAMMOODDS
  1121.     {
  1122.         ifrnd 32 spawn CHAINGUNSPRITE
  1123.         else spawn BATTERYAMMO
  1124.     }
  1125. ends
  1126.  
  1127. state jib_sounds
  1128.     ifrnd SWEARFREQUENCY
  1129.     {
  1130.         ifrnd 16 globalsound JIBBED_ACTOR1
  1131.         else ifrnd 16 globalsound JIBBED_ACTOR2
  1132.         else ifrnd 16 globalsound JIBBED_ACTOR3
  1133.         else ifrnd 16 globalsound JIBBED_ACTOR5
  1134.         else ifrnd 16 globalsound JIBBED_ACTOR6
  1135.         else ifrnd 16 globalsound JIBBED_ACTOR10
  1136.         else ifrnd 16 globalsound JIBBED_ACTOR7
  1137.         else ifrnd 16 globalsound JIBBED_ACTOR4
  1138.         else ifrnd 16 globalsound JIBBED_ACTOR8
  1139.         else ifrnd 16 globalsound JIBBED_ACTOR13
  1140.         else ifrnd 16 globalsound JIBBED_ACTOR9
  1141.         else ifrnd 16 globalsound JIBBED_ACTOR11
  1142.         else ifrnd 16 globalsound JIBBED_ACTOR12
  1143.     }
  1144. ends
  1145.  
  1146. state standard_jibs
  1147.     guts JIBS2 1
  1148.     guts JIBS3 2
  1149.     guts JIBS4 3
  1150.     guts JIBS5 2
  1151.     guts JIBS6 3
  1152.     ifrnd 4 { guts JIBS1 1 spawn BLOODPOOL }               // spine
  1153.     state jib_sounds
  1154. ends
  1155.  
  1156. action FEMSHRUNK
  1157. action FEMFROZEN1 1
  1158. action FEMFROZEN2
  1159. action FEMDANCE1 19 1 1 1 16
  1160. action FEMDANCE3 19 1 1 1 26
  1161.  
  1162. action FEMDANCE2 20 2 1 1 10
  1163. action FEMANIMATE
  1164.  
  1165. state femcode
  1166.     ifspritepal 25 { strength 9000 }
  1167.     ifactor NAKED1 { } else ifactor FEM6 { } else
  1168.     {
  1169.         fall
  1170.         ifactor BLOODYPOLE ifhitweapon ifdead
  1171.             { state standard_jibs killit }
  1172.     }
  1173.  
  1174.     ifaction FEMSHRUNK
  1175.     {
  1176.         ifcount SHRUNKDONECOUNT action FEMANIMATE
  1177.         else ifcount SHRUNKCOUNT sizeto 40 40
  1178.         else state genericshrunkcode
  1179.     }
  1180.     else ifaction FEMDANCE1 { ifactioncount 2 action FEMDANCE2 }
  1181.     else ifaction FEMDANCE2 { ifactioncount 8 action FEMDANCE3 }
  1182.     else ifaction FEMDANCE3 { ifactioncount 2 action FEMANIMATE }
  1183.     else ifaction FEMFROZEN1
  1184.     {
  1185.         ifcount THAWTIME { action FEMANIMATE getlastpal }
  1186.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1187.  
  1188.         ifhitweapon
  1189.         {
  1190.             ifwasweapon FREEZEBLAST { strength 0 break }
  1191.             lotsofglass 30
  1192.             sound GLASS_BREAKING
  1193.             respawnhitag
  1194.             ifrnd 84 spawn BLOODPOOL
  1195.             killit
  1196.         }
  1197.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1198.         break
  1199.     }
  1200.     else ifaction FEMFROZEN2
  1201.     {
  1202.         ifcount THAWTIME { action FEMANIMATE getlastpal }
  1203.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1204.  
  1205.         ifhitweapon
  1206.         {
  1207.             ifwasweapon FREEZEBLAST { strength 0 break }
  1208.             lotsofglass 30
  1209.  
  1210.             sound GLASS_BREAKING
  1211.             ifrnd 84 spawn BLOODPOOL
  1212.             respawnhitag
  1213.  
  1214.             ifrnd 128 sound DUKE_HIT_STRIPPER1
  1215.             else sound DUKE_HIT_STRIPPER2
  1216.  
  1217.             killit
  1218.         }
  1219.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1220.         break
  1221.     }
  1222.  
  1223.     ifhitweapon
  1224.     {
  1225.         // JEM this next line is goddess code
  1226.         ifspritepal 25 ifactor FEM1 { action FEMDANCE1 shoot RPG shoot RPG break } 
  1227.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING count 0 action FEMSHRUNK break }
  1228.  
  1229.         ifdead
  1230.         {
  1231.             ifwasweapon FREEZEBLAST
  1232.             {
  1233.                 ifaction FEMSHRUNK break
  1234.  
  1235.                 ifactor NAKED1 action FEMFROZEN2
  1236.                 else ifactor FEM5 action FEMFROZEN2
  1237.                 else ifactor FEM6 action FEMFROZEN2
  1238.                 else ifactor FEM8 action FEMFROZEN2
  1239.                 else ifactor FEM9 action FEMFROZEN2
  1240.                 else ifactor PODFEM1 action FEMFROZEN2
  1241.                 else action FEMFROZEN1
  1242.  
  1243.                 move 0
  1244.                 spritepal 1
  1245.                 strength 0
  1246.  
  1247.                 sound SOMETHINGFROZE
  1248.  
  1249.                 break
  1250.             }
  1251.  
  1252.             ifrnd 128 sound DUKE_HIT_STRIPPER1
  1253.             else sound DUKE_HIT_STRIPPER2
  1254.  
  1255.             respawnhitag
  1256.             state standard_jibs
  1257.  
  1258.             shoot BLOODSPLAT1
  1259.             shoot BLOODSPLAT2
  1260.             shoot BLOODSPLAT3
  1261.             shoot BLOODSPLAT4
  1262.             spawn BLOODPOOL
  1263.  
  1264.             ifactor FEM1 money 5
  1265.             else ifactor FEM2 { money 7 cactor BARBROKE cstat 0 }
  1266.             else ifactor FEM3 money 4
  1267.             else ifactor FEM7 money 8
  1268.  
  1269.             ifactor FEM5 { strength TOUGH cactor BLOODYPOLE }
  1270.             else ifactor FEM6 { cstat 0 cactor FEM6PAD }
  1271.             else ifactor FEM8 { strength TOUGH cactor BLOODYPOLE }
  1272.             else
  1273.             {
  1274.                 spritepal 6
  1275.                 soundonce LADY_SCREAM
  1276.                 ifactor NAKED1 debris SCRAP3 18
  1277.                 else ifactor PODFEM1 debris SCRAP3 18
  1278.                 killit
  1279.             }
  1280.         }
  1281.         else
  1282.         {
  1283.             sound SQUISHED
  1284.             guts JIBS6 1
  1285.             ifactor FEM8 break
  1286.             soundonce LADY_SCREAM
  1287.         }
  1288.     }
  1289. ends
  1290.  
  1291. state killme
  1292.     ifp pfacing ifpdistl 1280 ifhitspace soundonce KILLME
  1293. ends
  1294.  
  1295. state tipme
  1296.     ifp pfacing ifpdistl 1280 ifhitspace
  1297.     {
  1298.         tip
  1299.         ifrnd 128 soundonce DUKE_TIP1
  1300.         else soundonce DUKE_TIP2
  1301.         ifactor FEM1 {
  1302.                        action FEMDANCE1
  1303.                        // JEM here is some more goddess code
  1304.                        ifspritepal 25   { state GOODIES
  1305.                                           addphealth SHARKBITESTRENGTH
  1306.                                         }
  1307.  
  1308.                      }
  1309.     }
  1310. ends
  1311.  
  1312. actor FEM1 TOUGH FEMANIMATE state tipme state femcode enda
  1313. actor FEM2 TOUGH FEMANIMATE state tipme state femcode enda
  1314. actor FEM3 TOUGH FEMANIMATE state tipme state femcode enda
  1315. actor FEM4 TOUGH FEMANIMATE state femcode enda
  1316. actor FEM5 TOUGH FEMANIMATE state killme state femcode enda
  1317. actor FEM6 TOUGH FEMANIMATE state killme state femcode enda
  1318. actor FEM7 TOUGH FEMANIMATE state tipme state femcode enda
  1319. actor FEM8 TOUGH FEMANIMATE state femcode enda
  1320. actor FEM9 TOUGH FEMANIMATE state femcode enda
  1321. actor NAKED1 TOUGH FEMANIMATE state killme state femcode enda
  1322. actor PODFEM1 TOUGH FEMANIMATE state killme state femcode enda
  1323. actor BLOODYPOLE TOUGH state femcode enda
  1324.  
  1325. actor STATUEFLASH fall // state statuehit
  1326.     ifcount 32 cactor STATUE
  1327. enda
  1328.  
  1329. actor STATUE fall
  1330.     ifp pfacing ifpdistl 1280 ifhitspace { cactor STATUEFLASH move 0 }
  1331. enda
  1332.  
  1333.  
  1334. actor MIKE
  1335.     ifp pfacing ifpdistl 1280 ifhitspace mikesnd
  1336. enda
  1337.  
  1338. state troop_body_jibs
  1339.     ifrnd 64 guts HEADJIB1 1
  1340.     ifrnd 64 guts LEGJIB1 2
  1341.     ifrnd 64 guts ARMJIB1 1
  1342.     ifrnd 48 spawn BLOODPOOL
  1343. ends
  1344.  
  1345. state liz_body_jibs
  1346. ifrnd 64 guts LIZMANHEAD1 1
  1347.     ifrnd 64 guts LIZMANLEG1 2
  1348.     ifrnd 64 guts LIZMANARM1 1
  1349.     ifrnd 48 spawn BLOODPOOL
  1350. ends
  1351.  
  1352. state delete_enemy killit ends
  1353.  
  1354.  
  1355. action BLOODFRAMES 0 4 1 1 15
  1356. actor BLOOD 0 BLOODFRAMES
  1357.     sizeto 72 72 sizeto 72 72 sizeto 72 72
  1358.     ifpdistg 3144 killit
  1359.     ifactioncount 4 killit
  1360. enda
  1361.  
  1362. action EGGOPEN1 1 1 1 1 4
  1363. action EGGOPEN2 2 1 1 1 4
  1364. action EGGOPEN3 2 1 1 1 4
  1365. action EGGWAIT  0
  1366. action EGGFROZEN 1
  1367. action EGGSHRUNK 1
  1368.  
  1369. actor EGG TOUGH
  1370.     ifaction 0
  1371.     {
  1372.         ifcount 64
  1373.         {
  1374.             ifrnd 128 { action EGGWAIT move 0 }
  1375.             else
  1376.             {
  1377.                 sound SLIM_HATCH
  1378.                 action EGGOPEN1
  1379.             }
  1380.         }
  1381.     }
  1382.     else ifaction EGGOPEN1 ifactioncount 4 action EGGOPEN2
  1383.     else ifaction EGGOPEN2 ifactioncount 4 { spawn GREENSLIME action EGGOPEN3 }
  1384.     else ifaction EGGSHRUNK
  1385.     {
  1386.         ifcount SHRUNKDONECOUNT action EGGOPEN2
  1387.         else ifcount SHRUNKCOUNT sizeto 48 40
  1388.         else state genericshrunkcode
  1389.     }
  1390.     else ifaction EGGFROZEN
  1391.     {
  1392.         ifcount THAWTIME { action 0 getlastpal }
  1393.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1394.  
  1395.         ifhitweapon
  1396.         {
  1397.             ifwasweapon FREEZEBLAST { strength 0 break }
  1398.             lotsofglass 30
  1399.  
  1400.             sound GLASS_BREAKING
  1401.             ifrnd 84 spawn BLOODPOOL
  1402.  
  1403.             addkills 1
  1404.             killit
  1405.         }
  1406.  
  1407.         // ifp pducking
  1408.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1409.  
  1410.         break
  1411.     }
  1412.  
  1413.     ifhitweapon
  1414.     {
  1415.         ifwasweapon SHRINKSPARK { move 0 sound ACTOR_SHRINKING action EGGSHRUNK break }
  1416.  
  1417.         ifdead
  1418.         {
  1419.             ifwasweapon FREEZEBLAST
  1420.                 { sound SOMETHINGFROZE spritepal 1 move 0 action EGGFROZEN strength 0 break }
  1421.  
  1422.             addkills 1
  1423.  
  1424.             sound SQUISHED
  1425.  
  1426.             state standard_jibs
  1427.             state delete_enemy
  1428.         }
  1429.     }
  1430.     else ifaction EGGWAIT
  1431.     {
  1432.         ifcount 512 ifrnd 2
  1433.         {
  1434.             ifaction EGGSHRUNK break
  1435.             sound SLIM_HATCH
  1436.             action EGGOPEN1
  1437.         }
  1438.     }
  1439.  
  1440. enda
  1441.  
  1442. actor KNEE KNEE_WEAPON_STRENGTH enda
  1443. actor SPIT SPIT_WEAPON_STRENGTH enda
  1444. actor CHAINGUN CHAINGUN_WEAPON_STRENGTH enda
  1445. actor SHOTGUN SHOTGUN_WEAPON_STRENGTH enda
  1446. actor FIRELASER FIRELASER_WEAPON_STRENGTH enda
  1447. actor HEAVYHBOMB HANDBOMB_WEAPON_STRENGTH enda
  1448. actor BOUNCEMINE BOUNCEMINE_WEAPON_STRENGTH enda
  1449. actor MORTER MORTER_WEAPON_STRENGTH enda
  1450. actor SHRINKSPARK SHRINKER_WEAPON_STRENGTH enda
  1451. actor RPG RPG_WEAPON_STRENGTH enda
  1452. actor FREEZEBLAST FREEZETHROWER_WEAPON_STRENGTH enda
  1453. actor DEVISTATORBLAST FREEZETHROWER_WEAPON_STRENGTH enda
  1454. actor COOLEXPLOSION1 COOL_EXPLOSION_STRENGTH enda
  1455. actor TRIPBOMB TRIPBOMB_STRENGTH enda
  1456.  
  1457. action WEAP2FRAMES 0  4  1  1  6
  1458. actor SHOTSPARK1 PISTOL_WEAPON_STRENGTH WEAP2FRAMES
  1459.     ifdead killit
  1460.     ifactioncount 4 killit
  1461.     else
  1462.     {
  1463.         ifactioncount 3 { ifinwater spawn WATERBUBBLE }
  1464.         else ifcount 2 { } else ifonwater spawn WATERSPLASH2
  1465.     }
  1466. enda
  1467.  
  1468. state standard_pjibs
  1469.     guts JIBS1 1
  1470.     guts JIBS3 2
  1471.     guts JIBS4 1
  1472.     guts JIBS5 1
  1473.     guts JIBS6 2
  1474.     guts DUKETORSO 1
  1475.     guts DUKELEG 2
  1476.     guts DUKEGUN 1
  1477.     ifrnd 16 money 1
  1478. ends
  1479.  
  1480. move DUKENOTMOVING
  1481. state handle_dead_dukes
  1482.     fall
  1483.     ifmove 0     // 1st time initializiation...
  1484.     {
  1485.         ifrnd 128 cstat 4
  1486.         else cstat 0
  1487.         move DUKENOTMOVING
  1488.     }
  1489.  
  1490.     ifsquished
  1491.     {
  1492.         sound SQUISHED
  1493.         spawn OOZ
  1494.         killit
  1495.     }
  1496.     else ifcount 1024 ifpdistg 4096 killit
  1497.     else
  1498.     {
  1499.         strength 0
  1500.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  1501.         {
  1502.             state standard_jibs
  1503.             killit
  1504.         }
  1505.     }
  1506. ends
  1507.  
  1508. action PLYINGFRAMES 0 1 0 1 1
  1509. actor DUKELYINGDEAD 0 PLYINGFRAMES
  1510.     state handle_dead_dukes
  1511. enda
  1512.  
  1513. action PSTAND       0   1   5   1    1
  1514. action PEXPLODE     106   5   1   1   10
  1515. action PEXPLODEAD   113   1   1
  1516.  
  1517. action PJPHOUVER    15   1   5   1
  1518. action PWALK        20   4   5   1   16
  1519. action PRUN         20   4   5   1   10
  1520. action PWALKBACK    45   4   5  -1   16
  1521. action PRUNBACK     45   4   5  -1   10
  1522. action PJUMPING     50   4   5   1   30
  1523. action PFALLING     65   1   5
  1524. action PDUCKING     86   1   5
  1525. action PCRAWLING    86   3   5   1   20
  1526. action PAKICKING    40   2   5   1   25
  1527. action PFLINTCHING  106  1   1   1   10
  1528. action PTHROWNBACK  106  5   1   1   18
  1529. action PFROZEN       20  1   5
  1530. action PLYINGDEAD   113  1   1
  1531.  
  1532. action PSWIMMINGGO   375   1   5   1   10
  1533. action PSWIMMING     375   4   5   1   13
  1534. action PSWIMMINGWAIT 395   1   5   1   13
  1535. action PTREDWATER    395   2   5   1   17
  1536.  
  1537. move PSTOPED
  1538. move PSHRINKING // used as a var only
  1539.  
  1540. state check_dead_thrown_back
  1541.     ifdead
  1542.     {
  1543.         strength 0
  1544.         action PTHROWNBACK
  1545.     }
  1546. ends
  1547.  
  1548. state check_pstandard
  1549.     ifp pwalking action PWALK
  1550.     else ifp pkicking action PAKICKING
  1551.     else ifp pwalkingback action PWALKBACK
  1552.     else ifp prunning action PRUN
  1553.     else ifp prunningback action PRUNBACK
  1554.     else ifp pjumping
  1555.         action PJUMPING
  1556.     else ifp pducking action PDUCKING
  1557. ends
  1558.  
  1559. state random_wall_jibs
  1560.     ifrnd 96 shoot BLOODSPLAT1
  1561.     ifrnd 96 shoot BLOODSPLAT2
  1562.     ifrnd 96 shoot BLOODSPLAT3
  1563.     ifrnd 96 shoot BLOODSPLAT4
  1564.     ifrnd 96 shoot BLOODSPLAT1
  1565. ends
  1566.  
  1567. actor APLAYER 100 PSTAND 0 0
  1568.  
  1569.     ifaction 0 action PSTAND
  1570.     ifdead
  1571.     {
  1572.         ifsquished palfrom 32 63 63 63
  1573.         else fall
  1574.  
  1575.         ifactioncount 7 { move 0 } else ifactioncount 6
  1576.         {
  1577.             ifmultiplayer { }
  1578.             else
  1579.             {
  1580.                 ifrnd 32 sound DUKE_KILLED5
  1581.                 else ifrnd 32 sound DUKE_KILLED3
  1582.                 else ifrnd 32 sound DUKE_KILLED1
  1583.                 else ifrnd 32 sound DUKE_KILLED2
  1584.             }
  1585.         }
  1586.  
  1587.         ifaction PLYINGDEAD
  1588.         {
  1589.             ifactioncount 3 move PSTOPED
  1590.             quote 13
  1591.             ifhitspace
  1592.             {
  1593.                 action PSTAND
  1594.                 spawn DUKELYINGDEAD
  1595.                 resetplayer
  1596.             }
  1597.             break
  1598.         }
  1599.         else ifaction PTHROWNBACK
  1600.         {
  1601.             ifactioncount 5
  1602.             {
  1603.                 spawn BLOODPOOL
  1604.                 action PLYINGDEAD
  1605.             }
  1606.             else ifactioncount 1 move 0
  1607.             break
  1608.         }
  1609.         else ifaction PFROZEN
  1610.         {
  1611.             cstat 257
  1612.  
  1613.             palfrom 16 0 0 24
  1614.  
  1615.             ifhitweapon
  1616.             {
  1617.                 ifwasweapon FREEZEBLAST break
  1618.                 lotsofglass 60
  1619.                 ifrnd 84 spawn BLOODPOOL
  1620.  
  1621.                 getlastpal
  1622.                 sound GLASS_BREAKING
  1623.                 spawn ATOMICHEALTH
  1624.                 cstat 32768
  1625.                 action PLYINGDEAD
  1626.                 break
  1627.             }
  1628.  
  1629.             ifactioncount THAWTIME { getlastpal strength 1 move 0 action PSTAND }
  1630.             else ifactioncount FROZENDRIPTIME { ifrnd 32 spawn WATERDRIP }
  1631.  
  1632.             ifp pfacing   // assumes some other player
  1633.                 ifpdistl FROZENQUICKKICKDIST pkick
  1634.  
  1635.             break
  1636.         }
  1637.         else ifaction PEXPLODEAD
  1638.         {
  1639.             quote 13
  1640.             ifhitspace
  1641.             {
  1642.                 action PSTAND
  1643.                 resetplayer
  1644.             }
  1645.             break
  1646.         }
  1647.         else ifaction PEXPLODE
  1648.         {
  1649.             ifactioncount 5
  1650.             {
  1651.                 action PEXPLODEAD
  1652.                 spawn BLOODPOOL
  1653.             }
  1654.             break
  1655.         }
  1656.  
  1657.         else ifp pshrunk
  1658.         {
  1659.             state standard_pjibs
  1660.             spawn BLOODPOOL
  1661.  
  1662.             sound SQUISHED
  1663.             sound DUKE_DEAD
  1664.  
  1665.             cstat 32768                 // Hide the sprite
  1666.  
  1667.             action PLYINGDEAD
  1668.         }
  1669.  
  1670.         else
  1671.         {
  1672.             ifinwater
  1673.             {
  1674.                 action PLYINGDEAD
  1675.                 spawn WATERBUBBLE
  1676.                 spawn WATERBUBBLE
  1677.             }
  1678.             else
  1679.             {
  1680.                 action PEXPLODE
  1681.                 state standard_pjibs
  1682.                 cstat 32768
  1683.                 sound SQUISHED
  1684.                 sound DUKE_DEAD
  1685.             }
  1686.         }
  1687.         break
  1688.     }
  1689.  
  1690.     ifsquished
  1691.     {
  1692.         strength -1
  1693.         sound SQUISHED
  1694.         spawn OOZ
  1695.         break
  1696.     }
  1697.  
  1698.     ifp ponsteroids
  1699.     {
  1700.         ifp pstanding { }
  1701.         else spawn FRAMEEFFECT1
  1702.     }
  1703.  
  1704.     ifmove PSHRINKING
  1705.     {
  1706.         ifcount 32
  1707.         {
  1708.             ifcount SHRUNKDONECOUNT move 0
  1709.             else ifcount SHRUNKCOUNT
  1710.             {
  1711.                 sizeto 42 36
  1712.                 ifgapzl 24
  1713.                 {
  1714.                     strength 0
  1715.                     sound SQUISHED
  1716.                     palfrom 48 64
  1717.                     break
  1718.                 }
  1719.             }
  1720.             else ifp ponsteroids count SHRUNKCOUNT
  1721.         }
  1722.         else
  1723.         {
  1724.             ifp ponsteroids count SHRUNKCOUNT
  1725.             else { sizeto 8 9 spawn FRAMEEFFECT1 }
  1726.         }
  1727.     }
  1728.  
  1729.     else ifhitweapon
  1730.     {
  1731.         ifdead { ifmultiplayer sound DUKE_KILLED4 }
  1732.         else
  1733.         {
  1734.             ifmultiplayer
  1735.             {
  1736.                 ifphealthl YELLHURTSOUNDSTRENGTHMP
  1737.                 {
  1738.                     ifrnd 64 sound DUKE_LONGTERM_PAIN2
  1739.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN3
  1740.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN4
  1741.                     else sound DUKE_DEAD
  1742.                 }
  1743.                 else
  1744.                 {
  1745.                     ifrnd 64 sound DUKE_LONGTERM_PAIN5
  1746.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN6
  1747.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN7
  1748.                     else sound DUKE_LONGTERM_PAIN8
  1749.                 }
  1750.             }
  1751.             else
  1752.             {
  1753.                 ifphealthl YELLHURTSOUNDSTRENGTH
  1754.                 {
  1755.                     ifrnd 74 sound DUKE_LONGTERM_PAIN2
  1756.                     else ifrnd 8 sound DUKE_LONGTERM_PAIN3
  1757.                     else sound DUKE_LONGTERM_PAIN4
  1758.                 }
  1759.                 ifrnd 128 sound DUKE_LONGTERM_PAIN
  1760.             }
  1761.         }
  1762.         ifstrength TOUGH
  1763.         {
  1764.             state headhitstate
  1765.             sound DUKE_GRUNT
  1766.             ifp pstanding action PFLINTCHING
  1767.         }
  1768.  
  1769.         ifwasweapon RPG
  1770.         {
  1771.             ifrnd 32 spawn BLOOD
  1772.             ifdead state standard_pjibs
  1773.             palfrom 48 52
  1774.             break
  1775.         }
  1776.         ifwasweapon RADIUSEXPLOSION
  1777.         {
  1778.             ifrnd 32 spawn BLOOD
  1779.             ifdead state standard_pjibs
  1780.             palfrom 48 52
  1781.             break
  1782.         }
  1783.         ifwasweapon FIREEXT
  1784.         {
  1785.             ifrnd 32 spawn BLOOD
  1786.             ifdead state standard_pjibs
  1787.             palfrom 48 52
  1788.             break
  1789.         }
  1790.  
  1791.         ifwasweapon SHRINKSPARK
  1792.         {
  1793.             palfrom 48 0 48
  1794.             move PSHRINKING // used as a var only.
  1795.             sound ACTOR_SHRINKING
  1796.             break
  1797.         }
  1798.  
  1799.         ifwasweapon SHOTSPARK1 palfrom 24 48
  1800.         else ifwasweapon FREEZEBLAST
  1801.         {
  1802.             palfrom 48 0 0 48
  1803.             ifdead { sound SOMETHINGFROZE spritepal 1 action PFROZEN break }
  1804.         }
  1805.         else ifwasweapon COOLEXPLOSION1 palfrom 48 48 0 48
  1806.         else ifwasweapon KNEE palfrom 16 32
  1807.         else ifwasweapon FIRELASER palfrom 32 32
  1808.         state check_dead_thrown_back
  1809.         state random_wall_jibs
  1810.  
  1811.         break
  1812.     }
  1813.  
  1814.     ifaction PFLINTCHING
  1815.     {
  1816.         ifactioncount 2 action PSTAND
  1817.         break
  1818.     }
  1819.  
  1820.     ifinwater
  1821.     {
  1822.         ifaction PTREDWATER
  1823.         {
  1824.             ifp pwalking prunning action PSWIMMINGGO
  1825.         }
  1826.         else ifp pstanding pwalkingback prunningback action PTREDWATER
  1827.         else
  1828.         {
  1829.             ifaction PSWIMMING
  1830.             {
  1831.                 ifrnd 4 spawn WATERBUBBLE
  1832.                 ifactioncount 4
  1833.                     action PSWIMMINGWAIT
  1834.             }
  1835.             else ifaction PSWIMMINGWAIT
  1836.             {
  1837.                 ifactioncount 2
  1838.                     action PSWIMMINGGO
  1839.             }
  1840.             else ifaction PSWIMMINGGO
  1841.             {
  1842.                 ifactioncount 2
  1843.                     action PSWIMMING
  1844.             }
  1845.             else action PTREDWATER
  1846.         }
  1847.  
  1848.         ifrnd 4 spawn WATERBUBBLE // For effect
  1849.  
  1850.         break
  1851.     }
  1852.     else ifp pjetpack
  1853.     {
  1854.         ifaction PJPHOUVER
  1855.         {
  1856.             ifactioncount 4
  1857.                 resetactioncount
  1858.         }
  1859.         else action PJPHOUVER
  1860.         break
  1861.     }
  1862.     else
  1863.     {
  1864.         ifaction PTREDWATER action PSTAND
  1865.         ifaction PSWIMMING action PSTAND
  1866.         ifaction PSWIMMINGWAIT action PSTAND
  1867.         ifaction PSWIMMINGGO action PSTAND
  1868.         ifaction PJPHOUVER action PFALLING
  1869.     }
  1870.  
  1871.     ifaction PFALLING
  1872.     {
  1873.         ifp ponground
  1874.             action PSTAND
  1875.         else
  1876.         {
  1877.             ifp pfalling break
  1878.             else state check_pstandard
  1879.         }
  1880.     }
  1881.  
  1882.     ifaction PDUCKING
  1883.     {
  1884.         ifgapzl 48
  1885.         {
  1886.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1887.         }
  1888.         else ifp pducking
  1889.         {
  1890.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1891.         }
  1892.         else
  1893.         {
  1894.             ifp pstanding action PSTAND
  1895.             else state check_pstandard
  1896.         }
  1897.     }
  1898.  
  1899.     else ifaction PCRAWLING
  1900.     {
  1901.         ifgapzl 48
  1902.         {
  1903.             ifp pstanding action PCRAWLING
  1904.         }
  1905.         else ifp pducking
  1906.         {
  1907.             ifp pstanding action PDUCKING
  1908.         }
  1909.         else
  1910.         {
  1911.             ifp pstanding action PSTAND
  1912.             else state check_pstandard
  1913.         }
  1914.     }
  1915.     else ifgapzl 48 action PDUCKING
  1916.  
  1917.     else ifaction PJUMPING
  1918.     {
  1919.         ifp ponground action PSTAND
  1920.         else ifactioncount 4 ifp pfalling action PFALLING
  1921.     }
  1922.  
  1923.     ifp pfalling action PFALLING
  1924.     else ifaction PSTAND state check_pstandard
  1925.     else ifaction PAKICKING
  1926.     {
  1927.         ifactioncount 2 action PSTAND
  1928.         break
  1929.     }
  1930.     else ifaction PWALK
  1931.     {
  1932.         ifp pfalling action PFALLING
  1933.         else ifp pstanding action PSTAND
  1934.         else ifp prunning action PRUN
  1935.         else ifp pwalkingback action PWALKBACK
  1936.         else ifp prunningback action PRUNBACK
  1937.         else ifp pjumping
  1938.             action PJUMPING
  1939.         else ifp pducking action PDUCKING
  1940.     }
  1941.  
  1942.     else ifaction PRUN
  1943.     {
  1944.         ifp pstanding action PSTAND
  1945.         else ifp pwalking action PWALK
  1946.         else ifp pwalkingback action PWALKBACK
  1947.         else ifp prunningback action PRUNBACK
  1948.         else ifp pjumping
  1949.             action PJUMPING
  1950.         else ifp pducking action PDUCKING
  1951.     }
  1952.  
  1953.     else ifaction PWALKBACK
  1954.     {
  1955.         ifp pstanding action PSTAND
  1956.         else ifp pwalking action PWALK
  1957.         else ifp prunning action PRUN
  1958.         else ifp prunningback action PRUNBACK
  1959.         else ifp pjumping
  1960.             action PJUMPING
  1961.         else ifp pducking action PDUCKING
  1962.     }
  1963.  
  1964.     else ifaction PRUNBACK
  1965.     {
  1966.         ifp pstanding action PSTAND
  1967.         else ifp pwalking action PWALK
  1968.         else ifp prunning action PRUN
  1969.         else ifp pwalkingback action PWALKBACK
  1970.         else ifp pjumping
  1971.             action PJUMPING
  1972.         else ifp pducking action PDUCKING
  1973.     }
  1974. enda
  1975.  
  1976. // actor ORGANTIC TURRETSTRENGTH
  1977.  //   ifcount 48 resetcount
  1978. //    else { ifcount 32 sizeto 32 32 }
  1979. //    else ifcount 16 { sizeto 48 18 ifpdistl 2048 { sound TURR_ATTACK addphealth -2 palfrom 32 16 } }
  1980. //    ifhitweapon { ifdead { addkills 1 sound TURR_DYING guts JIBS5 10 state delete_enemy } sound TURR_PAIN break }
  1981. //    ifrnd 1 soundonce TURR_ROAM
  1982. // enda
  1983.  
  1984. // JEM new ORGANTIC code here, now it chases you!
  1985.  
  1986.  
  1987.  
  1988. action AORGANTICCRUZING 0 8 1 1 24
  1989. action AORGANTICFLEE    0 8 1 1 10
  1990. action AORGANTICATACK   0 8 1 1 6
  1991. action AORGANTICSHRUNK  0 8 1 1 24
  1992. action AORGANTICFROZEN  0 1 1 1 24
  1993.  
  1994. move ORGANTICVELS 48
  1995. move ORGANTICFASTVELS 148
  1996. move ORGANTICFLEEVELS 80
  1997.  
  1998. actor ORGANTIC TURRETSTRENGTH AORGANTICCRUZING ORGANTICVELS randomangle geth
  1999.     ifaction AORGANTICSHRUNK
  2000.     {
  2001.         ifcount SHRUNKDONECOUNT action AORGANTICCRUZING
  2002.         else ifcount SHRUNKCOUNT sizeto 24 24
  2003.         else state genericshrunkcode
  2004.     }
  2005.     else ifaction AORGANTICFROZEN
  2006.     {
  2007.         fall
  2008.  
  2009.         ifcount THAWTIME { action AORGANTICFLEE getlastpal }
  2010.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  2011.  
  2012.         ifhitweapon
  2013.         {
  2014.             ifwasweapon FREEZEBLAST { strength 0 break }
  2015.             lotsofglass 30
  2016.             sound GLASS_BREAKING
  2017.             addkills 1
  2018.             killit
  2019.         }
  2020.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  2021.         break
  2022.     }
  2023.     else ifaction AORGANTICFLEE
  2024.     {
  2025.         ifcount 16 ifrnd 48 { action AORGANTICCRUZING move ORGANTICVELS randomangle geth }
  2026.     }
  2027.     else ifaction AORGANTICCRUZING
  2028.     {
  2029.         ifcansee ifcount 48 ifrnd 2 { action AORGANTICATACK move ORGANTICFASTVELS faceplayerslow getv break }
  2030.         ifcount 32 ifnotmoving
  2031.         {
  2032.             ifrnd 128 move ORGANTICVELS randomangle geth
  2033.             else move ORGANTICFASTVELS randomangle geth
  2034.         }
  2035.     }
  2036.     else ifaction AORGANTICATACK
  2037.     {
  2038.         ifcount 4
  2039.         {
  2040.             ifpdistl 1280
  2041.             {
  2042.                 ifp palive ifcanshoottarget
  2043.                 {
  2044.                     sound TURR_ATTACK
  2045.                     shoot SPIT
  2046.                     shoot SPIT
  2047.                 }
  2048.                 action AORGANTICFLEE
  2049.                 move ORGANTICFLEEVELS fleeenemy
  2050.             }
  2051.         }
  2052.         else ifnotmoving
  2053.             { ifcount 32 { action AORGANTICCRUZING move ORGANTICVELS randomangle geth } }
  2054.         else ifcount 48 ifrnd 2
  2055.             { action AORGANTICCRUZING move ORGANTICFASTVELS randomangle geth }
  2056.     }
  2057.  
  2058.     ifhitweapon
  2059.     {
  2060.         sound TURR_PAIN
  2061.         ifdead
  2062.             { sound TURR_DYING guts JIBS6 5 killit }
  2063.         else
  2064.         {
  2065.             ifwasweapon SHRINKSPARK
  2066.             {
  2067.                 action AORGANTICSHRUNK
  2068.                 sound ACTOR_SHRINKING
  2069.             }
  2070.             else ifwasweapon FREEZEBLAST
  2071.             {
  2072.                 action AORGANTICFROZEN
  2073.                 sound SOMETHINGFROZE
  2074.                 move 0
  2075.             }
  2076.             else move ORGANTICVELS randomangle geth
  2077.         }
  2078.     }
  2079.     ifrnd 1 soundonce TURR_ROAM
  2080. enda
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086. // End of new Organtic code
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092. state rf
  2093.     ifrnd 128 cstat 4
  2094.     else cstat 0
  2095. ends
  2096.  
  2097.  
  2098. //
  2099. //
  2100. //      TROOP/LIZTROOP CODE
  2101. //
  2102. //
  2103.  
  2104. action ATROOPSTAND       0    1    5    1    1
  2105. action ATROOPSTAYSTAND  -2    1    5    1    1
  2106. action ATROOPWALKING     0    4    5    1   12
  2107. action ATROOPWALKINGBACK 15   4    5   -1   12
  2108. action ATROOPRUNNING     0    4    5    1    8
  2109. action ATROOPSHOOT      35    1    5    1   30
  2110. action ATROOPJETPACK    40    1    5    1    1
  2111. action ATROOPJETPACKILL 40    2    5    1   50
  2112. action ATROOPFLINTCH    50    1    1    1    6
  2113. action ATROOPDYING      50    5    1    1   16
  2114. action ATROOPDEAD       54
  2115. action ATROOPPLAYDEAD   54
  2116. action ATROOPSUFFERDEAD 58    2    1   -4   24
  2117. action ATROOPSUFFERING  59    2    1    1   21
  2118. action ATROOPDUCK       64    1    5    1    3
  2119. action ATROOPDUCKSHOOT  64    2    5    1   25
  2120. action ATROOPABOUTHIDE  74    1    1    1   25
  2121. action ATROOPHIDE       79    1    1    1   25
  2122. action ATROOPREAPPEAR   74    1    1    1   25
  2123. action ATROOPFROZEN      0    1    5
  2124.  
  2125. move TROOPWALKVELS 72
  2126. move TROOPWALKVELSBACK -72
  2127. move TROOPJETPACKVELS 64 -84
  2128. move TROOPJETPACKILLVELS 192 -38
  2129. move TROOPRUNVELS 108
  2130. move TROOPSTOPPED
  2131. move DONTGETUP
  2132. move SHRUNKVELS 32
  2133.  
  2134. ai AITROOPSEEKENEMY  ATROOPWALKING   TROOPWALKVELS seekplayer
  2135. ai AITROOPSEEKPLAYER ATROOPWALKING   TROOPWALKVELS seekplayer
  2136. ai AITROOPFLEEING    ATROOPWALKING   TROOPWALKVELS fleeenemy
  2137. ai AITROOPFLEEINGBACK ATROOPWALKINGBACK   TROOPWALKVELSBACK faceplayer
  2138. ai AITROOPDODGE      ATROOPWALKING   TROOPRUNVELS  dodgebullet
  2139. ai AITROOPSHOOTING   ATROOPSHOOT     TROOPSTOPPED  faceplayer
  2140. ai AITROOPDUCKING    ATROOPDUCK      TROOPSTOPPED  faceplayer
  2141. ai AITROOPJETPACK    ATROOPJETPACK   TROOPJETPACKVELS seekplayer
  2142. ai AITROOPSHRUNK     ATROOPWALKING   SHRUNKVELS fleeenemy
  2143. ai AITROOPHIDE       ATROOPABOUTHIDE TROOPSTOPPED faceplayer
  2144.  
  2145. state troophidestate
  2146.     ifaction ATROOPREAPPEAR
  2147.     {
  2148.         ifactioncount 2 { sound TELEPORTER ai AITROOPSHOOTING cstat 257 }
  2149.         else { sizeto 41 40 sizeto 41 40 sizeto 41 40 sizeto 41 40 spawn FRAMEEFFECT1 }
  2150.     }
  2151.     else ifaction ATROOPWALKING
  2152.     {
  2153.         ifpdistl 2448 ifpdistg 1024
  2154.         {
  2155.             ifceilingdistl 48 break
  2156.             ifp pfacing break
  2157.  
  2158.             ifgapzl 64 { } else ifawayfromwall { spawn TRANSPORTERSTAR action ATROOPREAPPEAR move 0 break }
  2159.         }
  2160.     }
  2161.     else ifaction ATROOPHIDE
  2162.     {
  2163.         ifactioncount 2
  2164.         {
  2165.             spawn TRANSPORTERSTAR
  2166.             sound TELEPORTER
  2167.             action ATROOPWALKING move TROOPWALKVELS faceplayer
  2168.             cstat 32768
  2169.         }
  2170.         else
  2171.         {
  2172.             sizeto 0 40
  2173.             sizeto 0 40
  2174.             sizeto 0 40
  2175.             sizeto 0 40
  2176.             spawn FRAMEEFFECT1
  2177.         }
  2178.     }
  2179.     else ifaction ATROOPABOUTHIDE ifactioncount 2 { action ATROOPHIDE cstat 0 }
  2180. ends
  2181.  
  2182.  
  2183. state troopgunnashoot
  2184.     ifp palive
  2185.     {
  2186.         ifpdistl 1024 ai AITROOPSHOOTING
  2187.         else ifactornotstayput
  2188.         {
  2189.             ifactioncount 12 ifrnd 16 ifcanshoottarget
  2190.             {
  2191.                 ifspritepal 21 ifrnd 4 ifpdistg 4096 ai AITROOPHIDE
  2192.                 else
  2193.                 {
  2194.                     ifpdistl 1100 ai AITROOPFLEEING
  2195.                     else
  2196.                     {
  2197.                         ifpdistl 4096 ifcansee ifcanshoottarget ai AITROOPSHOOTING
  2198.                         else { move TROOPRUNVELS seekplayer action ATROOPRUNNING }
  2199.                     }
  2200.                 }
  2201.             }
  2202.         }
  2203.         else ifcount 26 ifrnd 32 ai AITROOPSHOOTING
  2204.     }
  2205. ends
  2206.  
  2207. state troopseekstate
  2208.     state troopgunnashoot
  2209.     ifinwater { ai AITROOPJETPACK break }
  2210.     ifcansee
  2211.     {
  2212.         ifmove TROOPRUNVELS ifpdistl 1596 ai AITROOPDUCKING
  2213.         ifp phigher { ifceilingdistl 128 { } else ifactornotstayput ai AITROOPJETPACK break }
  2214.         else ifrnd 2
  2215.         {
  2216.             ifspritepal 21 ifpdistg 1596 { ai AITROOPHIDE break }
  2217.             ifbulletnear { ifrnd 128 ai AITROOPDODGE else ai AITROOPDUCKING break }
  2218.         }
  2219.     }
  2220.     ifnotmoving { ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget ai AITROOPSHOOTING }
  2221.     ifrnd 1
  2222.     {
  2223.         ifrnd 128 soundonce PRED_ROAM
  2224.         else soundonce PRED_ROAM2
  2225.     }
  2226. ends
  2227.  
  2228. state troopduckstate
  2229.     ifaction ATROOPDUCK
  2230.         { ifactioncount 8 { ifp palive { ifrnd 128 action ATROOPDUCKSHOOT } else ifmove DONTGETUP break else ai AITROOPSEEKPLAYER } }
  2231.     else ifaction ATROOPDUCKSHOOT
  2232.     {
  2233.         ifcount 64
  2234.         {
  2235.             ifmove DONTGETUP resetcount
  2236.             else
  2237.             {
  2238.                 ifpdistl 1100
  2239.                     ai AITROOPFLEEING
  2240.                 else ai AITROOPSEEKPLAYER
  2241.             }
  2242.         }
  2243.         else ifactioncount 2 { ifcanshoottarget { sound PRED_ATTACK resetactioncount shoot FIRELASER } else ai AITROOPSEEKPLAYER }
  2244.     }
  2245. ends
  2246.  
  2247. state troopshootstate
  2248.     ifactioncount 2
  2249.     {
  2250.         ifcanshoottarget
  2251.         {
  2252.             shoot FIRELASER sound PRED_ATTACK resetactioncount
  2253.             ifrnd 128 ai AITROOPSEEKPLAYER
  2254.             ifcount 24
  2255.             {
  2256.                 ifrnd 96 ifpdistg 2048 ai AITROOPSEEKPLAYER
  2257.                 else
  2258.                 {
  2259.                     ifpdistg 1596 ai AITROOPFLEEING
  2260.                     else ai AITROOPFLEEINGBACK
  2261.                 }
  2262.             }
  2263.         }
  2264.         else ai AITROOPSEEKPLAYER
  2265.     }
  2266. ends
  2267.  
  2268. state troopfleestate
  2269.     ifactioncount 7
  2270.     {
  2271.         ifpdistg 3084 { ai AITROOPSEEKPLAYER break }
  2272.         else ifrnd 32 ifp palive ifcansee ifcanshoottarget { ifrnd 128 ai AITROOPDUCKING else ai AITROOPSHOOTING break }
  2273.     }
  2274.     ifnotmoving
  2275.     {
  2276.         ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget
  2277.             { ifrnd 128 ai AITROOPSHOOTING else ai AITROOPDUCKING }
  2278.     }
  2279. ends
  2280.  
  2281. state troopdying
  2282.     iffloordistl 32 { ifactioncount 5 { cstat 0 iffloordistl 8 sound THUD ifrnd 64 spawn BLOODPOOL state rf strength 0 move TROOPSTOPPED action ATROOPDEAD } break }
  2283.     else { state rf move 0 action ATROOPDYING }
  2284. ends
  2285.  
  2286. state checktroophit
  2287.     ifaction ATROOPSUFFERING { stopsound LIZARD_BEG sound PRED_DYING cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  2288.     ifdead
  2289.     {
  2290.         ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ATROOPFROZEN strength 0 break }
  2291.  
  2292.         state drop_ammo
  2293.         state random_wall_jibs
  2294.         addkills 1
  2295.  
  2296.         ifwasweapon RPG { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  2297.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  2298.         else { sound PRED_DYING ifrnd 32 iffloordistl 32 { sound LIZARD_BEG spawn BLOODPOOL strength 0 move 0 action ATROOPSUFFERING break } action ATROOPDYING break }
  2299.     }
  2300.     else
  2301.     {
  2302.         state random_wall_jibs
  2303.         sound PRED_PAIN
  2304.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AITROOPSHRUNK }
  2305.         else iffloordistl 32 ifrnd 96 action ATROOPFLINTCH
  2306.     }
  2307. ends
  2308.  
  2309. state troopjetpackstate
  2310.     ifaction ATROOPJETPACKILL
  2311.     {
  2312.         ifcansee ifactioncount 2
  2313.         {
  2314.             resetactioncount
  2315.             sound PRED_ATTACK
  2316.             shoot FIRELASER
  2317.         }
  2318.  
  2319.         ifp phigher ai AITROOPJETPACK
  2320.         else ifinwater ai AITROOPJETPACK
  2321.         else ifcount 26 iffloordistl 32 ai AITROOPSEEKPLAYER
  2322.     }
  2323.     else ifcount 48 ifcansee
  2324.         { action ATROOPJETPACKILL move TROOPJETPACKILLVELS seekplayer }
  2325. ends
  2326.  
  2327. state checksquished
  2328.     ifsquished { addkills 1 sound SQUISHED state standard_jibs spawn OOZ state delete_enemy }
  2329. ends
  2330.  
  2331. state troopsufferingstate
  2332.     ifactioncount 2
  2333.     {
  2334.         ifrnd 16 spawn WATERDRIP
  2335.         ifactioncount 14 { stopsound LIZARD_BEG cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  2336.     }
  2337. ends
  2338.  
  2339. state troopshrunkstate
  2340.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  2341.     else ifcount SHRUNKCOUNT sizeto 48 40
  2342.     else state genericshrunkcode
  2343. ends
  2344.  
  2345. state troopcode fall
  2346.     ifinwater ifrnd 1 spawn WATERBUBBLE
  2347.     ifaction ATROOPSTAND { ifrnd 192 ai AITROOPSHOOTING else ai AITROOPSEEKPLAYER }
  2348.     else ifaction ATROOPFROZEN
  2349.     {
  2350.         ifcount THAWTIME { ai AITROOPSEEKENEMY getlastpal }
  2351.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  2352.         ifhitweapon
  2353.         {
  2354.             ifwasweapon FREEZEBLAST { strength 0 break }
  2355.             addkills 1
  2356.  
  2357.             ifrnd 84 spawn BLOODPOOL
  2358.             lotsofglass 30
  2359.             sound GLASS_BREAKING
  2360.             killit
  2361.         }
  2362.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  2363.         break
  2364.     }
  2365.     else ifaction ATROOPPLAYDEAD
  2366.     {
  2367.         ifhitweapon
  2368.         {
  2369.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  2370.             break
  2371.         }
  2372.         else state checksquished
  2373.  
  2374.         ifcount PLAYDEADTIME { addkills -1 soundonce PRED_ROAM cstat 257 strength 1 ai AITROOPSHOOTING }
  2375.         else ifp pfacing resetcount
  2376.  
  2377.         break
  2378.     }
  2379.     else ifaction ATROOPDEAD
  2380.     {
  2381.         strength 0
  2382.         ifrespawn ifcount RESPAWNACTORTIME { spawn TRANSPORTERSTAR cstat 257 strength TROOPSTRENGTH ai AITROOPSEEKENEMY }
  2383.         ifhitweapon
  2384.         {
  2385.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  2386.             break
  2387.         }
  2388.         else state checksquished
  2389.         break
  2390.     }
  2391.     else ifaction ATROOPSUFFERDEAD
  2392.     {
  2393.         ifactioncount 2
  2394.         {
  2395.             ifrnd 64 { resetcount action ATROOPPLAYDEAD }
  2396.             else { soundonce PRED_DYING action ATROOPDEAD }
  2397.         }
  2398.     }
  2399.     else ifaction ATROOPDYING { state troopdying break }
  2400.     else ifaction ATROOPSUFFERING
  2401.         { state troopsufferingstate ifhitweapon state checktroophit break }
  2402.     else ifaction ATROOPFLINTCH { ifactioncount 4 ai AITROOPSEEKENEMY }
  2403.     else
  2404.     {
  2405.         ifai AITROOPSEEKPLAYER state troopseekstate
  2406.         else ifai AITROOPJETPACK
  2407.         {
  2408.             state troopjetpackstate
  2409.             ifinwater { } else soundonce DUKE_JETPACK_IDLE
  2410.         }
  2411.         else ifai AITROOPSEEKENEMY state troopseekstate
  2412.         else ifai AITROOPSHOOTING state troopshootstate
  2413.         else ifai AITROOPFLEEING state troopfleestate
  2414.         else ifai AITROOPFLEEINGBACK state troopfleestate
  2415.         else ifai AITROOPDODGE state troopseekstate
  2416.         else ifai AITROOPDUCKING state troopduckstate
  2417.         else ifai AITROOPSHRUNK state troopshrunkstate
  2418.         else ifai AITROOPHIDE { state troophidestate break }
  2419.     }
  2420.  
  2421.     ifhitweapon state checktroophit else state checksquished
  2422. ends
  2423.  
  2424.  
  2425. actor LIZTROOPJETPACK TROOPSTRENGTH ai AITROOPJETPACK cactor LIZTROOP enda
  2426. actor LIZTROOPDUCKING TROOPSTRENGTH
  2427.     ai AITROOPDUCKING cactor LIZTROOP
  2428.     ifgapzl 48 move DONTGETUP
  2429. enda
  2430.  
  2431. actor LIZTROOPSHOOT TROOPSTRENGTH ATROOPSTAND ai AITROOPSHOOTING cactor LIZTROOP enda
  2432. actor LIZTROOPSTAYPUT TROOPSTRENGTH ATROOPSTAYSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  2433. actor LIZTROOPRUNNING TROOPSTRENGTH ATROOPSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  2434. actor LIZTROOPONTOILET TROOPSTRENGTH ifcount 24 { sound FLUSH_TOILET operate ai AITROOPSEEKPLAYER cactor LIZTROOP } enda
  2435. actor LIZTROOP TROOPSTRENGTH ATROOPSTAND state troopcode enda
  2436.  
  2437. action ALIZWALKING       0     4    5    1    15
  2438. action ALIZRUNNING       0     4    5    1    11
  2439. action ALIZTHINK         20    2    5    1    40
  2440. action ALIZSCREAM        30    1    5    1    2
  2441. action ALIZJUMP          45    3    5    1    20
  2442. action ALIZFALL          55
  2443. action ALIZSHOOTING      70    2    5    1    7
  2444. action ALIZDYING         60    6    1    1    15
  2445. action ALIZLYINGDEAD     65    1
  2446. action ALIZFROZEN         0    1    5
  2447.  
  2448. move LIZWALKVEL 72
  2449. move LIZRUNVEL 192
  2450. move LIZJUMPVEL 184
  2451. move LIZSTOP
  2452.  
  2453. ai AILIZGETENEMY ALIZWALKING LIZWALKVEL seekplayer
  2454. ai AILIZDODGE ALIZRUNNING LIZRUNVEL dodgebullet
  2455. ai AILIZCHARGEENEMY ALIZRUNNING LIZRUNVEL seekplayer
  2456. ai AILIZFLEENEMY ALIZWALKING LIZWALKVEL fleeenemy
  2457. ai AILIZSHOOTENEMY ALIZSHOOTING LIZSTOP faceplayer
  2458. ai AILIZJUMPENEMY ALIZJUMP LIZJUMPVEL jumptoplayer
  2459. ai AILIZTHINK ALIZTHINK LIZSTOP faceplayerslow
  2460. ai AILIZSHRUNK ALIZWALKING SHRUNKVELS fleeenemy
  2461. ai AILIZSPIT ALIZSCREAM LIZSTOP faceplayerslow
  2462. ai AILIZDYING ALIZDYING LIZSTOP faceplayer
  2463.  
  2464. state lizseekstate
  2465.  
  2466.     ifactornotstayput
  2467.     {
  2468.         ifcansee ifp palive ifpdistl 2048 ifcount 16 ifcanshoottarget { ai AILIZSHOOTENEMY break }
  2469.         ifai AILIZCHARGEENEMY
  2470.         {
  2471.             ifcount 72 ifcanshoottarget { ai AILIZSHOOTENEMY break }
  2472.             ifp phigher ifpdistg 2048 ifrnd 6 { ai AILIZJUMPENEMY break }
  2473.         }
  2474.         else ifpdistg 4096 { ifrnd 92 { ifcount 48 ifcanshoottarget ai AILIZSHOOTENEMY } else ifcount 24 { ai AILIZCHARGEENEMY break } }
  2475.  
  2476.         iffloordistl 16 { ifcount 48 ifnotmoving ifcansee { ai AILIZJUMPENEMY break } }
  2477.         else { ifpdistg 1280 ai AILIZJUMPENEMY break }
  2478.  
  2479.         ifrnd 4 ifnotmoving operate
  2480.         else ifrnd 1 ifbulletnear
  2481.         {
  2482.             ifgapzl 128 ai AILIZDODGE
  2483.             else ifactornotstayput { ifrnd 32 ai AILIZJUMPENEMY else ai AILIZDODGE }
  2484.         }
  2485.     }
  2486.     else
  2487.     {
  2488.         ifactioncount 16 { ifp palive ifrnd 32 ifcansee ifcanshoottarget ai AILIZSHOOTENEMY }
  2489.         ifcount 16 ifrnd 32 move LIZWALKVEL randomangle geth
  2490.     }
  2491.  
  2492. ends
  2493.  
  2494. state lizshrunkstate
  2495.     ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
  2496.     else ifcount SHRUNKCOUNT sizeto 48 40
  2497.     else state genericshrunkcode
  2498. ends
  2499.  
  2500. state lizfleestate
  2501.     ifcount 16 { ifrnd 48 ifp palive ifcansee ai AILIZSPIT }
  2502.     else { iffloordistl 16 { } else ai AILIZGETENEMY break }
  2503. ends
  2504.  
  2505. state lizthinkstate
  2506.     ifrnd 8 soundonce CAPT_ROAM
  2507.     ifactioncount 3
  2508.     {
  2509.         ifrnd 32 ifp palive ifcansee ai AILIZSPIT
  2510.         else ifrnd 96 ai AILIZGETENEMY
  2511.     }
  2512.     else ifactioncount 2 ifrnd 1 spawn FECES
  2513.     ifrnd 1 ifbulletnear
  2514.     {
  2515.         ifgapzl 96 ai AILIZDODGE
  2516.         else { ifrnd 128 ai AILIZJUMPENEMY else ai AILIZDODGE }
  2517.     }
  2518. ends
  2519.  
  2520. state lizshootstate
  2521.     ifcount 20 ifrnd 8
  2522.     {
  2523.         ifcansee ifpdistl 2048 { ifrnd 128 ai AILIZFLEENEMY break }
  2524.         ifrnd 80 ai AILIZTHINK else ai AILIZGETENEMY
  2525.     }
  2526.     ifactioncount 2
  2527.     {
  2528.         ifcansee
  2529.         {
  2530.             ifcanshoottarget { sound CAPT_ATTACK shoot SHOTSPARK1 resetactioncount }
  2531.             else ai AILIZTHINK
  2532.         }
  2533.         else ai AILIZGETENEMY
  2534.     }
  2535. ends
  2536.  
  2537. state checklizhit
  2538.     spawn BLOOD
  2539.     ifai AILIZSHRUNK
  2540.         { addkills 1 sound SQUISHED state standard_jibs state delete_enemy }
  2541.     ifdead
  2542.     {
  2543.         ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ALIZFROZEN strength 0 break }
  2544.  
  2545.         state drop_chaingun
  2546.         addkills 1
  2547.  
  2548.         ifwasweapon RPG { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  2549.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  2550.         else { state rf ai AILIZDYING ifrnd 64 spawn BLOODPOOL }
  2551.         sound CAPT_DYING
  2552.     }
  2553.     else
  2554.     {
  2555.         sound CAPT_PAIN
  2556.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AILIZSHRUNK break }
  2557.         state random_wall_jibs
  2558.         ifp palive ifcansee ifcanshoottarget { ai AILIZSHOOTENEMY break }
  2559.     }
  2560. ends
  2561.  
  2562. state lizjumpstate
  2563.     ifaction ALIZFALL { iffloordistl 16 ai AILIZGETENEMY }
  2564.     else ifactioncount 3 action ALIZFALL
  2565. ends
  2566.  
  2567. state lizdyingstate
  2568.     ifaction ALIZLYINGDEAD
  2569.     {
  2570.         strength 0
  2571.         ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2572.         ifcount RESPAWNACTORTIME ifrespawn
  2573.         {
  2574.             spawn TRANSPORTERSTAR cstat 257 strength LIZSTRENGTH ai AILIZGETENEMY
  2575.         }
  2576.     }
  2577.     else ifai AILIZDYING ifactioncount 6 { iffloordistl 8 sound THUD move LIZSTOP action ALIZLYINGDEAD }
  2578. ends
  2579.  
  2580. state lizdodgestate
  2581.     ifcount 13 ai AILIZGETENEMY
  2582. ends
  2583.  
  2584. actor LIZMANSTAYPUT LIZSTRENGTH ai AILIZGETENEMY cactor LIZMAN enda
  2585. actor LIZMANSPITTING LIZSTRENGTH ai AILIZSPIT cactor LIZMAN enda
  2586. actor LIZMANJUMP LIZSTRENGTH ai AILIZJUMPENEMY cactor LIZMAN enda
  2587.  
  2588. actor LIZMAN LIZSTRENGTH fall
  2589.     state checksquished
  2590.     ifai 0 ai AILIZGETENEMY
  2591.     else ifaction ALIZLYINGDEAD { fall state lizdyingstate break }
  2592.     else ifaction ALIZFROZEN
  2593.     {
  2594.         ifcount THAWTIME { ai AILIZGETENEMY getlastpal }
  2595.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  2596.  
  2597.         ifhitweapon
  2598.         {
  2599.             ifwasweapon FREEZEBLAST { strength 0 break }
  2600.             addkills 1
  2601.  
  2602.             ifrnd 84 spawn BLOODPOOL
  2603.             lotsofglass 30
  2604.             sound GLASS_BREAKING
  2605.             killit
  2606.         }
  2607.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  2608.         break
  2609.     }
  2610.     else ifai AILIZJUMPENEMY state lizjumpstate
  2611.     else
  2612.     {
  2613.         fall
  2614.         ifai AILIZGETENEMY state lizseekstate
  2615.         else ifai AILIZCHARGEENEMY state lizseekstate
  2616.         else ifai AILIZDODGE state lizdodgestate
  2617.         else ifai AILIZSHOOTENEMY state lizshootstate
  2618.         else ifai AILIZFLEENEMY state lizfleestate
  2619.         else ifai AILIZTHINK state lizthinkstate
  2620.         else ifai AILIZSHRUNK state lizshrunkstate
  2621.         else ifai AILIZDYING state lizdyingstate
  2622.         else ifai AILIZSPIT
  2623.             { ifcount 26 ai AILIZGETENEMY else ifcount 18 ifrnd 96 { shoot SPIT sound LIZARD_SPIT } }
  2624.     }
  2625.  
  2626.     ifai AILIZSHRUNK break
  2627.     ifhitweapon state checklizhit
  2628. enda
  2629.  
  2630. action DRONEFRAMES     0   1   7   1   1
  2631. action DRONESCREAM     0   1   7   1   1
  2632. move DRONERUNVELS 128 64
  2633. move DRONERUNUPVELS 128 -64
  2634. move DRONEBULLVELS 252 -64
  2635. move DRONEBACKWARDS -64 -64
  2636. move DRONERISE 32 -32
  2637. move DRONESTOPPED -16
  2638.  
  2639. ai AIDRONEGETE DRONESCREAM DRONERUNVELS faceplayerslow getv
  2640. ai AIDRONEWAIT DRONEFRAMES DRONESTOPPED faceplayerslow
  2641. ai AIDRONEGETUP DRONESCREAM DRONERUNUPVELS faceplayer getv
  2642. ai AIDRONEPULLBACK DRONEFRAMES DRONEBACKWARDS faceplayerslow
  2643. ai AIDRONEHIT DRONESCREAM DRONEBACKWARDS faceplayer
  2644. ai AIDRONESHRUNK DRONEFRAMES SHRUNKVELS fleeenemy
  2645. ai AIDRONEDODGE DRONEFRAMES DRONEBULLVELS dodgebullet geth
  2646. ai AIDRONEDODGEUP DRONEFRAMES DRONERISE getv geth
  2647.  
  2648. state checkdronehitstate
  2649.  
  2650.     ifdead
  2651.     {
  2652.         addkills 1
  2653.         debris SCRAP1 8
  2654.         debris SCRAP2 4
  2655.         debris SCRAP3 7
  2656.         spawn EXPLOSION2
  2657.         sound RPG_EXPLODE
  2658.         hitradius 2048 15 20 25 30
  2659.         killit
  2660.     }
  2661.     else
  2662.     {
  2663.         sound DRON_PAIN
  2664.         ifbulletnear
  2665.         {
  2666.             ifceilingdistl 64 ifrnd 48 ai AIDRONEDODGE
  2667.             ai AIDRONEDODGEUP
  2668.         }
  2669.         else ai AIDRONEGETE
  2670.     }
  2671. ends
  2672.  
  2673. state droneshrunkstate
  2674.     ifcount 24 state delete_enemy
  2675.     else sizeto 1 1
  2676. ends
  2677.  
  2678.  
  2679. state DRONEFIRE
  2680.         ifspritepal 19  { sound BOS1_ATTACK2 shoot RPG }
  2681.         else ifspritepal 18 { sound CAPT_ATTACK shoot MORTER }
  2682.         else ifspritepal 17 { sound PRED_ATTACK shoot FIRELASER }
  2683. ends
  2684.  
  2685.  
  2686.  
  2687. state checkdronenearplayer
  2688.  
  2689.     ifp palive ifpdistl 1596
  2690.     {
  2691.         ifcount 8
  2692.         {
  2693.             addkills 1
  2694.             sound DRON_ATTACK2
  2695.             // JEM a drone that brings stuff?
  2696.             ifspritepal 25
  2697.             {
  2698.             state GOODIES
  2699.             state GOODIES
  2700.             state GOODIES
  2701.             state GOODIES
  2702.             state GOODIES
  2703.             killit
  2704.             }
  2705.             else ifspritepal 0
  2706.             {
  2707.             debris SCRAP1 8
  2708.             debris SCRAP2 4
  2709.             debris SCRAP3 7
  2710.             spawn EXPLOSION2
  2711.             sound RPG_EXPLODE 
  2712.             hitradius 2048 15 20 25 30
  2713.             killit
  2714.             }
  2715.  
  2716.             // JEM these drones shoot at 'ya
  2717.             else
  2718.             {
  2719.             state DRONEFIRE
  2720.             }
  2721.         }
  2722.         else ifcount 3 { } else sound LASERTRIP_ARMING
  2723.     }
  2724.  
  2725. ends
  2726.  
  2727. state dronegetstate
  2728.     ifrnd 192
  2729.     {
  2730.         ifcansee
  2731.         {
  2732.             ifbulletnear { ai AIDRONEDODGE break }
  2733.             ifmove DRONEBULLVELS
  2734.             {
  2735.                 ifcount 64 ai AIDRONEPULLBACK
  2736.                 else ifnotmoving ifcount 16 ai AIDRONEPULLBACK
  2737.             }
  2738.             else ifcount 32
  2739.             {
  2740.                 ifp phigher move DRONEBULLVELS geth getv
  2741.                 else move DRONEBULLVELS geth
  2742.             }
  2743.         }
  2744.         else ifrnd 1 operate
  2745.     }
  2746. ends
  2747.  
  2748. state dronedodgestate
  2749.     ifai AIDRONEDODGEUP
  2750.     {
  2751.        ifcount 8 ai AIDRONEGETE
  2752.        else ifnotmoving ai AIDRONEGETE
  2753.     }
  2754.     else
  2755.     {
  2756.         ifcount 8 ai AIDRONEGETE
  2757.         else ifnotmoving ai AIDRONEGETE
  2758.     }
  2759. ends
  2760.  
  2761. actor DRONE DRONESTRENGTH
  2762.     state checksquished
  2763.     state checkdronenearplayer
  2764.  
  2765.     ifrnd 2 fall
  2766.     else soundonce DRON_JETSND
  2767.  
  2768.     ifaction 0 ai AIDRONEGETE
  2769.  
  2770.     else ifai AIDRONEWAIT
  2771.     {
  2772.         ifactioncount 4 ifrnd 16
  2773.             ifcansee { sound DRON_ATTACK1 ifp phigher ai AIDRONEGETUP else ai AIDRONEGETE }
  2774.     }
  2775.     else ifai AIDRONEGETE state dronegetstate
  2776.     else ifai AIDRONEGETUP state dronegetstate
  2777.     else ifai AIDRONEPULLBACK { ifcount 32 ai AIDRONEWAIT }
  2778.     else ifai AIDRONEHIT { ifcount 8 ai AIDRONEWAIT }
  2779.     else ifai AIDRONESHRUNK state droneshrunkstate
  2780.     else ifai AIDRONEDODGE state dronedodgestate
  2781.     else ifai AIDRONEDODGEUP state dronedodgestate
  2782.  
  2783.     ifhitweapon state checkdronehitstate
  2784.  
  2785.     ifrnd 1 soundonce DRON_ROAM
  2786.  
  2787. enda
  2788.  
  2789.  
  2790.  
  2791. action AOCTAWALK        0   3   5   1   15
  2792. action AOCTASTAND       0   1   5   1   15
  2793. action AOCTASCRATCH     0   4   5   1   15
  2794. action AOCTAHIT        30   1   1   1   10
  2795. action AOCTASHOOT      20   1   5   1   10
  2796. action AOCTADYING      30   8   1   1   17
  2797. action AOCTADEAD       38   1   1   1    1
  2798. action AOCTAFROZEN      0   1   5
  2799.  
  2800. move OCTAWALKVELS 96 -30
  2801. move OCTAUPVELS 96 -70
  2802. move OCTASTOPPED 0 -30
  2803. move OCTAINWATER 96 24
  2804.  
  2805. ai AIOCTAGETENEMY AOCTAWALK OCTAWALKVELS seekplayer
  2806. ai AIOCTASHOOTENEMY AOCTASHOOT OCTASTOPPED faceplayer
  2807. ai AIOCTASCRATCHENEMY AOCTASCRATCH OCTASTOPPED faceplayer
  2808. ai AIOCTAHIT AOCTAHIT OCTASTOPPED faceplayer
  2809. ai AIOCTASHRUNK AOCTAWALK SHRUNKVELS faceplayer
  2810. ai AIOCTADYING AOCTADYING OCTASTOPPED faceplayer
  2811.  
  2812. state octagetenemystate
  2813.  
  2814.     ifcansee
  2815.     {
  2816.         ifactioncount 32 { ifrnd 48 ifcanshoottarget { sound OCTA_ATTACK1 ai AIOCTASHOOTENEMY break } }
  2817.         else ifpdistl 1280 ai AIOCTASCRATCHENEMY
  2818.     }
  2819.  
  2820. ends
  2821.  
  2822. state octascratchenemystate
  2823.     ifpdistg 1280 ai AIOCTAGETENEMY
  2824.     else ifcount 32 { resetcount sound OCTA_ATTACK2 palfrom 8 32 addphealth OCTASCRATCHINGPLAYER }
  2825. ends
  2826.  
  2827. state octashootenemystate
  2828.     ifcount 25 { ifcount 27 ai AIOCTAGETENEMY }
  2829.     else ifcount 24 shoot COOLEXPLOSION1
  2830.     else ifactioncount 6 resetactioncount
  2831. ends
  2832.  
  2833. state checkoctahitstate
  2834.     ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIOCTASHRUNK }
  2835.     else
  2836.     {
  2837.         ifdead
  2838.         {
  2839.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action AOCTAFROZEN strength 0 break }
  2840.  
  2841.             addkills 1
  2842.             ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2843.             else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2844.             else { state rf ai AIOCTADYING }
  2845.             sound OCTA_DYING
  2846.         }
  2847.         else
  2848.         {
  2849.             ifwasweapon RPG
  2850.             {
  2851.                 sound OCTA_DYING
  2852.                 addkills 1
  2853.                 state standard_jibs
  2854.                 killit
  2855.             }
  2856.             sound OCTA_PAIN spawn BLOOD
  2857.             ifrnd 64 ai AIOCTAHIT
  2858.  
  2859.         }
  2860.     }
  2861.     state random_wall_jibs
  2862. ends
  2863.  
  2864. state octashrunkstate
  2865.     ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
  2866.     else ifcount SHRUNKCOUNT sizeto 48 40
  2867.     else state genericshrunkcode
  2868. ends
  2869.  
  2870. state octadyingstate
  2871.     ifactioncount 8 { ifrnd 64 spawn BLOODPOOL move OCTASTOPPED action AOCTADEAD break }
  2872.     else ifactioncount 5 { } else ifactioncount 4 iffloordistl 8 sound THUD
  2873. ends
  2874.  
  2875. actor OCTABRAINSTAYPUT OCTASTRENGTH ai AIOCTAGETENEMY cactor OCTABRAIN enda
  2876.  
  2877. actor OCTABRAIN OCTASTRENGTH fall
  2878.  
  2879.     state checksquished
  2880.  
  2881.     ifai 0 ai AIOCTAGETENEMY
  2882.     else ifaction AOCTADEAD
  2883.     {
  2884.         strength 0
  2885.         ifcount RESPAWNACTORTIME ifrespawn
  2886.             { addkills -1 spawn TRANSPORTERSTAR cstat 257 strength OCTASTRENGTH ai AIOCTAGETENEMY }
  2887.         ifhitweapon ifwasweapon RADIUSEXPLOSION { state standard_jibs killit }
  2888.         break
  2889.     }
  2890.     else ifaction AOCTAFROZEN
  2891.     {
  2892.         ifcount THAWTIME { ai AIOCTAGETENEMY getlastpal }
  2893.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  2894.  
  2895.         ifhitweapon
  2896.         {
  2897.             addkills 1
  2898.             ifwasweapon FREEZEBLAST { strength 0 break }
  2899.  
  2900.             lotsofglass 30
  2901.             ifrnd 84 spawn BLOODPOOL
  2902.             sound GLASS_BREAKING
  2903.             killit
  2904.         }
  2905.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  2906.         break
  2907.     }
  2908.     else
  2909.     {
  2910.         ifrnd 1 soundonce OCTA_ROAM
  2911.  
  2912.         ifai AIOCTAGETENEMY state octagetenemystate
  2913.         else ifai AIOCTAHIT { ifcount 8 ai AIOCTASHOOTENEMY }
  2914.         else ifai AIOCTADYING { state octadyingstate break }
  2915.         else ifai AIOCTASCRATCHENEMY state octascratchenemystate
  2916.         else ifai AIOCTASHOOTENEMY state octashootenemystate
  2917.         else ifai AIOCTASHRUNK state octashrunkstate
  2918.  
  2919.         ifmove OCTAUPVELS { } else ifp phigher move OCTAUPVELS seekplayer
  2920.         else ifmove OCTAINWATER { } else ifinwater move OCTAINWATER seekplayer
  2921.  
  2922.         ifhitweapon state checkoctahitstate
  2923.     }
  2924. enda
  2925.  
  2926. action APIGWALK         0  4 5 1 20
  2927. action APIGRUN          0  4 5 1 11
  2928. action APIGSHOOT        30 2 5 1 58
  2929. action APIGCOCK         25 1 5 1 16
  2930. action APIGSTAND        30 1 5 1 1
  2931. action APIGDIVE         40 2 5 1 40
  2932. action APIGDIVESHOOT    45 2 5 1 58
  2933. action APIGDYING        55 5 1 1 15
  2934. action APIGHIT          55 1 1 1 10
  2935. action APIGDEAD         60 1 1 1 1
  2936. action APIGFROZEN        0 1 5
  2937.  
  2938. move PIGWALKVELS  30   //   72
  2939. move PIGRUNVELS   60   //  108
  2940. move PIGSTOPPED
  2941.  
  2942. ai AIPIGSEEKENEMY APIGWALK PIGWALKVELS seekplayer
  2943. ai AIPIGSHOOTENEMY APIGSHOOT PIGSTOPPED faceplayer
  2944. ai AIPIGFLEEENEMY APIGWALK PIGWALKVELS fleeenemy
  2945. ai AIPIGSHOOT APIGSHOOT PIGSTOPPED faceplayer
  2946. ai AIPIGDODGE APIGRUN PIGRUNVELS dodgebullet
  2947. ai AIPIGCHARGE APIGRUN PIGRUNVELS seekplayer
  2948. ai AIPIGDIVING APIGDIVE PIGSTOPPED faceplayer
  2949. ai AIPIGDYING APIGDYING PIGSTOPPED faceplayer
  2950. ai AIPIGSHRINK APIGWALK SHRUNKVELS fleeenemy
  2951. ai AIPIGHIT APIGHIT PIGSTOPPED faceplayer
  2952.  
  2953.  
  2954. // JEM here's the plug-in to add new fire modes
  2955. state PIGFIRE
  2956.         ifspritepal 10    { sound PIG_ATTACK shoot SHOTSPARK1 }
  2957.         else ifspritepal 11  { sound PIG_ATTACK shoot FIRELASER }
  2958.         else ifspritepal 12  { sound PIG_ATTACK shoot SHOTGUN }
  2959.         else ifspritepal 13  { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN }
  2960.         else ifspritepal 14  { sound PIG_ATTACK shoot MORTER }
  2961.         else ifspritepal 15  { sound PIG_ATTACK shoot RPG }
  2962.         else { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2963. ends
  2964.  
  2965. // end of new code JEM
  2966.  
  2967. state pigseekenemystate
  2968.  
  2969.     ifai AIPIGCHARGE
  2970.     {
  2971.         ifcansee ifpdistl 3084
  2972.         {
  2973.             ifnotmoving ai AIPIGSEEKENEMY
  2974.             else ai AIPIGDIVING
  2975.         }
  2976.         break
  2977.     }
  2978.     else iffloordistl 32
  2979.     {
  2980.         ifpdistg 4096 { ifactornotstayput ai AIPIGCHARGE }
  2981.         ifrnd 8 { ifbulletnear ai AIPIGDODGE }
  2982.     }
  2983.  
  2984.     ifrnd 128 ifcansee
  2985.     {
  2986.         ifai AIPIGDODGE { ifcount 32 ai AIPIGCHARGE break }
  2987.         iffloordistl 32
  2988.         {
  2989.             ifpdistl 1024 ifp palive ifcanshoottarget
  2990.                 { ai AIPIGSHOOTENEMY break }
  2991.             ifcount 48 { ifrnd 8 ifp palive ifcanshoottarget { ifrnd 192 ai AIPIGSHOOTENEMY else ai AIPIGDIVING break } }
  2992.         }
  2993.     }
  2994. ends
  2995.  
  2996.  
  2997. state pigshootenemystate
  2998. //    ifcansee
  2999.     {
  3000.         ifcount 12 { } else ifcount 11
  3001.         {
  3002.             ifcanshoottarget { state PIGFIRE }
  3003.             else ai AIPIGSEEKENEMY
  3004.         }
  3005.         ifcount 25 { } else ifcount 24 { action APIGCOCK sound SHOTGUN_COCK }
  3006.         ifcount 48 { } else ifcount 47
  3007.         {
  3008.             ifcanshoottarget { state PIGFIRE }
  3009.             else ai AIPIGSEEKENEMY
  3010.         }
  3011.         ifcount 60 { } else ifcount 59 { action APIGCOCK sound SHOTGUN_COCK }
  3012.         ifcount 72
  3013.         {
  3014.             ifrnd 64 resetcount
  3015.             else
  3016.             {
  3017.                 ifpdistl 768 ai AIPIGFLEEENEMY
  3018.                 else ai AIPIGSEEKENEMY
  3019.             }
  3020.         }
  3021.         ifaction APIGCOCK ifactioncount 2 action APIGSHOOT
  3022.     }
  3023.     else ai AIPIGSEEKENEMY
  3024. ends
  3025.  
  3026. state pigfleeenemystate
  3027.     ifactioncount 8 ai AIPIGSEEKENEMY
  3028.     else ifnotmoving ai AIPIGSEEKENEMY
  3029. ends
  3030.  
  3031. state pigdivestate
  3032.     ifaction APIGDIVESHOOT
  3033.     {
  3034.         ifcansee
  3035.         {
  3036.             ifcount 12 { } else ifcount 11
  3037.             {
  3038.                 ifcanshoottarget { state PIGFIRE }
  3039.                 else ai AIPIGSEEKENEMY
  3040.             }
  3041.             ifcount 25 { } else ifcount 24 { sound SHOTGUN_COCK }
  3042.             ifcount 48 { } else ifcount 47
  3043.             {
  3044.                 ifcanshoottarget { state PIGFIRE }
  3045.                 else ai AIPIGSEEKENEMY
  3046.             }
  3047.             ifcount 60 { } else ifcount 59
  3048.             {
  3049.                 sound SHOTGUN_COCK
  3050.                 ifgapzl 32 ai AIPIGDIVING
  3051.                 else
  3052.                 {
  3053.                     ifpdistl 4096 ai AIPIGFLEEENEMY
  3054.                     else ai AIPIGSEEKENEMY
  3055.                 }
  3056.             }
  3057.         }
  3058.         else ifgapzl 32 ai AIPIGDIVING else ai AIPIGSEEKENEMY
  3059.     }
  3060.     else ifactioncount 2 ifp palive { resetcount action APIGDIVESHOOT }
  3061. ends
  3062.  
  3063. state checkpighitstate
  3064.     spawn BLOOD
  3065.     ifdead
  3066.     {
  3067.         state random_wall_jibs
  3068.         ifrnd 16 spawn SHIELD else state drop_shotgun
  3069.         ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action APIGFROZEN strength 0 break }
  3070.  
  3071.         addkills 1
  3072.         ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  3073.         else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  3074.         ai AIPIGDYING sound PIG_DYING
  3075.     }
  3076.     else
  3077.     {
  3078.         sound PIG_PAIN
  3079.         state random_wall_jibs
  3080.  
  3081.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIPIGSHRINK }
  3082.         else ifrnd 64 ai AIPIGHIT
  3083.         else ifrnd 64 ai AIPIGSHOOTENEMY
  3084.         else ifrnd 64 { ai AIPIGDIVING action APIGDIVESHOOT }
  3085.     }
  3086. ends
  3087.  
  3088. state pigshrinkstate
  3089.     ifcount SHRUNKDONECOUNT ai AIPIGSEEKENEMY
  3090.     else ifcount SHRUNKCOUNT sizeto 48 40
  3091.     else state genericshrunkcode
  3092. ends
  3093.  
  3094. state pigdyingstate
  3095.     ifactioncount 5 { ifrnd 64 spawn BLOODPOOL state rf iffloordistl 8 sound THUD action APIGDEAD move PIGSTOPPED break }
  3096. ends
  3097.  
  3098.  
  3099.  
  3100. actor PIGCOPDIVE PIGCOPSTRENGTH ai AIPIGDIVING action APIGDIVESHOOT cactor PIGCOP enda
  3101. actor PIGCOPSTAYPUT PIGCOPSTRENGTH ai AIPIGSEEKENEMY cactor PIGCOP enda
  3102. actor PIGCOP PIGCOPSTRENGTH APIGSTAND fall
  3103.     state checksquished
  3104.     ifaction APIGSTAND ai AIPIGSEEKENEMY
  3105.     else ifaction APIGDEAD
  3106.     {
  3107.         ifrespawn ifcount RESPAWNACTORTIME
  3108.             { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH ai AIPIGSEEKENEMY }
  3109.         else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  3110.     }
  3111.     else ifaction APIGFROZEN
  3112.     {
  3113.         ifcount THAWTIME { ai AIPIGSEEKENEMY getlastpal }
  3114.         else ifcount FROZENDRIPTIME ifrnd 8 spawn WATERDRIP
  3115.  
  3116.         ifhitweapon
  3117.         {
  3118.             ifwasweapon FREEZEBLAST { strength 0 break }
  3119.             addkills 1
  3120.  
  3121.             lotsofglass 30
  3122.             ifrnd 84 spawn BLOODPOOL
  3123.             sound GLASS_BREAKING
  3124.             killit
  3125.         }
  3126.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3127.         break
  3128.     }
  3129.     else ifai AIPIGDYING state pigdyingstate
  3130.     else ifai AIPIGHIT { ifactioncount 3 ai AIPIGSEEKENEMY }
  3131.     else ifai AIPIGSHRINK state pigshrinkstate
  3132.     else
  3133.     {
  3134.         ifai AIPIGSEEKENEMY state pigseekenemystate
  3135.         else ifai AIPIGDODGE state pigseekenemystate
  3136.         else ifai AIPIGSHOOTENEMY state pigshootenemystate
  3137.         else ifai AIPIGFLEEENEMY state pigfleeenemystate
  3138.         else ifai AIPIGDIVING state pigdivestate
  3139.         else ifai AIPIGCHARGE state pigseekenemystate
  3140.         ifhitweapon state checkpighitstate
  3141.         ifrnd 1
  3142.         {
  3143.             ifrnd 32 soundonce PIG_ROAM
  3144.             else ifrnd 64 soundonce PIG_ROAM2
  3145.             else soundonce PIG_ROAM3
  3146.         }
  3147.     }
  3148. enda
  3149.  
  3150.  
  3151.  
  3152.  
  3153. action ABOSS1WALK                0  4  5  1  12
  3154. action ABOSS1FROZEN              30 1  5
  3155. action ABOSS1RUN                 0  6  5  1  5
  3156. action ABOSS1SHOOT               30 2  5  1  4
  3157. action ABOSS1LOB                 40 2  5  1  35
  3158. action ABOSS1DYING              50 5  1  1  50
  3159. action BOSS1FLINTCH             50 1  1  1  1
  3160. action ABOSS1DEAD               55
  3161.  
  3162. move PALBOSS1SHRUNKRUNVELS 32
  3163. move PALBOSS1RUNVELS 128
  3164. move BOSS1WALKVELS 208
  3165. move BOSS1RUNVELS 296
  3166. move BOSS1STOPPED
  3167.  
  3168. ai AIBOSS1SEEKENEMY ABOSS1WALK BOSS1WALKVELS seekplayer
  3169. ai AIBOSS1RUNENEMY ABOSS1RUN BOSS1RUNVELS faceplayer
  3170. ai AIBOSS1SHOOTENEMY ABOSS1SHOOT BOSS1STOPPED faceplayer
  3171. ai AIBOSS1LOBBED ABOSS1LOB BOSS1STOPPED faceplayer // faceplayersmart
  3172. ai AIBOSS1DYING ABOSS1DYING BOSS1STOPPED faceplayer
  3173. ai AIBOSS1PALSHRINK ABOSS1WALK PALBOSS1SHRUNKRUNVELS furthestdir
  3174.  
  3175. state boss1palshrunkstate
  3176.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  3177.     else ifcount SHRUNKCOUNT sizeto 40 40
  3178.     else state genericshrunkcode
  3179. ends
  3180.  
  3181. state checkboss1seekstate
  3182.     ai AIBOSS1SEEKENEMY
  3183.     ifspritepal 0 { } else     // a fake way of doing a ifspritepal NOT.
  3184.         move PALBOSS1RUNVELS seekplayer
  3185. ends
  3186.  
  3187. state boss1runenemystate
  3188.     ifpdistl 2048 { ifp palive ai AIBOSS1SHOOTENEMY break }
  3189.     else ifcansee { ifactioncount 6 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS1SEEKENEMY } }
  3190.     else ai AIBOSS1SEEKENEMY
  3191. ends
  3192.  
  3193. state boss1seekenemystate
  3194.     ifrnd 2 soundonce BOS1_ROAM
  3195.     else ifactioncount 6 { resetactioncount sound BOS1_WALK }
  3196.  
  3197.     ifpdistl 2548 ifp palive { ai AIBOSS1SHOOTENEMY break }
  3198.  
  3199.     ifcansee ifcount 32
  3200.     {
  3201.         ifrnd 32 { ifp palive ifcanshoottarget ai AIBOSS1SHOOTENEMY }
  3202.         else ifpdistg 2548 ifrnd 192
  3203.             ifcanshoottarget
  3204.             {
  3205.                 ifrnd 64
  3206.                 {
  3207.                     ai AIBOSS1RUNENEMY
  3208.                     ifspritepal 0 { } else move PALBOSS1RUNVELS seekplayer
  3209.                 }
  3210.                 else ai AIBOSS1LOBBED
  3211.             }
  3212.     }
  3213.  
  3214. ends
  3215.  
  3216. state boss1dyingstate
  3217.   ifaction ABOSS1DEAD
  3218.   {
  3219.       ifspritepal 0 break
  3220.       ifrespawn ifcount RESPAWNACTORTIME
  3221.           { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss1seekstate }
  3222.       else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  3223.   }
  3224.   ifactioncount 5 { iffloordistl 8 sound THUD action ABOSS1DEAD cstat 0 ifspritepal 0 endofgame 52 }
  3225. ends
  3226.  
  3227. state boss1lobbedstate
  3228.     ifcansee
  3229.     {
  3230.         ifactioncount 2
  3231.         {
  3232.             resetactioncount
  3233.             sound BOS1_ATTACK2
  3234.             shoot MORTER
  3235.         }
  3236.         else ifcount 64 ifrnd 16 state checkboss1seekstate
  3237.     }
  3238.     else state checkboss1seekstate
  3239. ends
  3240.  
  3241. state boss1shootenemy
  3242.     ifcount 72 state checkboss1seekstate
  3243.     else ifaction ABOSS1SHOOT ifactioncount 2
  3244.     {
  3245.         sound BOS1_ATTACK1
  3246.         shoot SHOTSPARK1
  3247.         shoot SHOTSPARK1
  3248.         shoot SHOTSPARK1
  3249.         shoot SHOTSPARK1
  3250.         shoot SHOTSPARK1
  3251.         shoot SHOTSPARK1
  3252.         resetactioncount
  3253.     }
  3254. ends
  3255.  
  3256. state checkboss1hitstate
  3257.     ifrnd 2 spawn BLOODPOOL
  3258.     ifdead
  3259.     {
  3260.         ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
  3261.         else
  3262.         {
  3263.             ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
  3264.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS1FROZEN strength 0 break }
  3265.         }
  3266.  
  3267.         sound BOS1_DYING
  3268.  
  3269.         addkills 1
  3270.         ai AIBOSS1DYING
  3271.     }
  3272.     else
  3273.     {
  3274.         ifrnd 32 { action BOSS1FLINTCH move 0 }
  3275.  
  3276.         ifspritepal 0 { }
  3277.         else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS1PALSHRINK break }
  3278.  
  3279.         soundonce BOS1_PAIN
  3280.  
  3281.         debris SCRAP1 1
  3282.         guts JIBS6 1
  3283.     }
  3284. ends
  3285.  
  3286. state boss1code
  3287.  
  3288.     ifaction ABOSS1FROZEN
  3289.     {
  3290.         ifcount THAWTIME { ai AIBOSS1SEEKENEMY spritepal 21 }
  3291.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  3292.  
  3293.         ifhitweapon
  3294.         {
  3295.             ifwasweapon FREEZEBLAST { strength 0 break }
  3296.             addkills 1
  3297.             lotsofglass 30
  3298.  
  3299.             ifrnd 84 spawn BLOODPOOL
  3300.             sound GLASS_BREAKING
  3301.             killit
  3302.         }
  3303.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3304.         break
  3305.     }
  3306.     ifai 0 { ifspritepal 0 ai AIBOSS1RUNENEMY else { strength BOSS1PALSTRENGTH ai AIBOSS1SHOOTENEMY } }
  3307.     else ifaction BOSS1FLINTCH { ifactioncount 3 ai AIBOSS1SHOOTENEMY }
  3308.     else ifai AIBOSS1SEEKENEMY state boss1seekenemystate
  3309.     else ifai AIBOSS1RUNENEMY state boss1runenemystate
  3310.     else ifai AIBOSS1SHOOTENEMY state boss1shootenemy
  3311.     else ifai AIBOSS1LOBBED state boss1lobbedstate
  3312.     else ifai AIBOSS1PALSHRINK state boss1palshrunkstate
  3313.  
  3314.     ifai AIBOSS1DYING state boss1dyingstate
  3315.     else
  3316.     {
  3317.         ifhitweapon state checkboss1hitstate
  3318.         else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth -1000 palfrom 63 63 }
  3319.     }
  3320. ends
  3321.  
  3322. actor BOSS1STAYPUT BOSS1STRENGTH cactor BOSS1 enda
  3323. actor BOSS1 BOSS1STRENGTH fall state boss1code enda
  3324.  
  3325.  
  3326. action ABOSS2WALK                0  4  5  1  30
  3327. action ABOSS2FROZEN              0  1  5
  3328. action ABOSS2RUN                 0  4  5  1  15
  3329. action ABOSS2SHOOT               20 2  5  1  15
  3330. action ABOSS2LOB                 30 2  5  1  105
  3331. action ABOSS2DYING              40 8  1  1  35
  3332. action BOSS2FLINTCH             40 1  1  1  1
  3333. action ABOSS2DEAD               48
  3334.  
  3335. move PALBOSS2SHRUNKRUNVELS 32
  3336. move PALBOSS2RUNVELS 84
  3337. move BOSS2WALKVELS 192
  3338. move BOSS2RUNVELS 256
  3339. move BOSS2STOPPED
  3340.  
  3341. ai AIBOSS2SEEKENEMY ABOSS2WALK BOSS2WALKVELS seekplayer
  3342. ai AIBOSS2RUNENEMY ABOSS2RUN BOSS2RUNVELS faceplayer
  3343. ai AIBOSS2SHOOTENEMY ABOSS2SHOOT BOSS2STOPPED faceplayer
  3344. ai AIBOSS2LOBBED ABOSS2LOB BOSS2STOPPED faceplayer
  3345. ai AIBOSS2DYING ABOSS2DYING BOSS2STOPPED faceplayer
  3346. ai AIBOSS2PALSHRINK ABOSS2WALK PALBOSS2SHRUNKRUNVELS furthestdir
  3347.  
  3348. state boss2palshrunkstate
  3349.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  3350.     else ifcount SHRUNKCOUNT sizeto 40 40
  3351.     else state genericshrunkcode
  3352. ends
  3353.  
  3354. state checkboss2seekstate
  3355.     ai AIBOSS2SEEKENEMY
  3356.     ifspritepal 0 { } else     // a fake way of doing a ifspritepal NOT.
  3357.         move PALBOSS2RUNVELS seekplayer
  3358. ends
  3359.  
  3360. state boss2runenemystate
  3361.     ifcansee
  3362.     {
  3363.         ifactioncount 3 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS2SEEKENEMY }
  3364.         ifcount 48 ifrnd 2 { ifp palive { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY } break }
  3365.     }
  3366.     else ai AIBOSS2SEEKENEMY
  3367. ends
  3368.  
  3369. state boss2seekenemystate
  3370.     ifrnd 2 soundonce BOS2_ROAM
  3371.     else ifactioncount 3 { resetactioncount sound BOS1_WALK }
  3372.  
  3373.     ifcansee ifcount 32 ifp palive ifrnd 48 ifcanshoottarget
  3374.     {
  3375.         ifrnd 64 ifpdistg 4096
  3376.         {
  3377.             ai AIBOSS2RUNENEMY
  3378.             ifspritepal 0 { }
  3379.             else move PALBOSS2RUNVELS seekplayer
  3380.             break
  3381.         }
  3382.  
  3383.         ifpdistl 10240 { ifrnd 128 { sound BOS2_ATTACK ai AIBOSS2LOBBED } }
  3384.         else { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY }
  3385.     }
  3386. ends
  3387.  
  3388. state boss2dyingstate
  3389.   ifaction ABOSS2DEAD
  3390.   {
  3391.       ifspritepal 0 break
  3392.       ifrespawn ifcount RESPAWNACTORTIME
  3393.           { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss2seekstate }
  3394.       else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  3395.   }
  3396.   ifactioncount 8 { iffloordistl 8 sound THUD action ABOSS2DEAD cstat 0 ifspritepal 0 endofgame 52 }
  3397. ends
  3398.  
  3399. state boss2lobbedstate
  3400.     ifcansee
  3401.     {
  3402.         ifactioncount 2 resetactioncount
  3403.         else ifactioncount 1 { ifrnd 128 shoot COOLEXPLOSION1 }
  3404.         else ifcount 64 ifrnd 16 state checkboss2seekstate
  3405.     }
  3406.     else state checkboss2seekstate
  3407. ends
  3408.  
  3409. state boss2shootenemy
  3410.     ifcount 72 state checkboss2seekstate
  3411.     else ifaction ABOSS2SHOOT ifactioncount 2
  3412.     {
  3413.         shoot RPG
  3414.         resetactioncount
  3415.     }
  3416. ends
  3417.  
  3418. state checkboss2hitstate
  3419.     ifrnd 2 spawn BLOODPOOL
  3420.     ifdead
  3421.     {
  3422.         ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
  3423.         else
  3424.         {
  3425.             ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
  3426.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS2FROZEN strength 0 break }
  3427.         }
  3428.  
  3429.         sound BOS2_DYING
  3430.  
  3431.         addkills 1
  3432.  
  3433.         ai AIBOSS2DYING
  3434.     }
  3435.     else
  3436.     {
  3437.         ifrnd 144
  3438.         {
  3439.             ifrnd 32 { action BOSS2FLINTCH move 0 }
  3440.             else { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY }
  3441.         }
  3442.  
  3443.         ifspritepal 0 { }
  3444.         else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS2PALSHRINK break }
  3445.  
  3446.         soundonce BOS2_PAIN
  3447.  
  3448.         debris SCRAP1 1
  3449.         guts JIBS6 1
  3450.     }
  3451. ends
  3452.  
  3453. state boss2code
  3454.  
  3455.     ifaction ABOSS2FROZEN
  3456.     {
  3457.         ifcount THAWTIME { ai AIBOSS2SEEKENEMY spritepal 21 }
  3458.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  3459.  
  3460.         ifhitweapon
  3461.         {
  3462.             ifwasweapon FREEZEBLAST { strength 0 break }
  3463.             addkills 1
  3464.  
  3465.             lotsofglass 30
  3466.             sound GLASS_BREAKING
  3467.             ifrnd 84 spawn BLOODPOOL
  3468.             killit
  3469.         }
  3470.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3471.         break
  3472.     }
  3473.     ifai 0 { ifspritepal 0 ai AIBOSS2RUNENEMY else { strength BOSS2PALSTRENGTH { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY } } }
  3474.     else ifaction BOSS2FLINTCH { ifactioncount 3 ai AIBOSS2SEEKENEMY }
  3475.     else ifai AIBOSS2SEEKENEMY state boss2seekenemystate
  3476.     else ifai AIBOSS2RUNENEMY state boss2runenemystate
  3477.     else ifai AIBOSS2SHOOTENEMY state boss2shootenemy
  3478.     else ifai AIBOSS2LOBBED state boss2lobbedstate
  3479.     else ifai AIBOSS2PALSHRINK state boss2palshrunkstate
  3480.  
  3481.     ifai AIBOSS2DYING state boss2dyingstate
  3482.     else
  3483.     {
  3484.         ifhitweapon state checkboss2hitstate
  3485.         else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth -1000 palfrom 63 63 }
  3486.     }
  3487.  
  3488.  
  3489. ends
  3490.  
  3491. actor BOSS2 BOSS2STRENGTH fall state boss2code enda
  3492.  
  3493.  
  3494. action ABOSS3WALK                0  4  5  1  30
  3495. action ABOSS3FROZEN              0  1  5
  3496. action ABOSS3RUN                 0  4  5  1  15
  3497. action ABOSS3LOB                20 4  5  1  50
  3498. action ABOSS3LOBBING            30 2  5  1  15
  3499. action ABOSS3DYING              40 8  1  1  20
  3500. action BOSS3FLINTCH             40 1  1  1  1
  3501. action ABOSS3DEAD               48
  3502.  
  3503. move PALBOSS3SHRUNKRUNVELS 32
  3504. move PALBOSS3RUNVELS 84
  3505. move BOSS3WALKVELS 208
  3506. move BOSS3RUNVELS 270
  3507. move BOSS3STOPPED
  3508.  
  3509. ai AIBOSS3SEEKENEMY ABOSS3WALK BOSS3WALKVELS seekplayer
  3510. ai AIBOSS3RUNENEMY ABOSS3RUN BOSS3RUNVELS faceplayerslow
  3511. ai AIBOSS3LOBENEMY ABOSS3LOB BOSS3STOPPED faceplayer
  3512. ai AIBOSS3DYING ABOSS3DYING BOSS3STOPPED faceplayer
  3513. ai AIBOSS3PALSHRINK ABOSS3WALK PALBOSS3SHRUNKRUNVELS faceplayer
  3514.  
  3515. state boss3palshrunkstate
  3516.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  3517.     else ifcount SHRUNKCOUNT sizeto 40 40
  3518.     else state genericshrunkcode
  3519. ends
  3520.  
  3521. state checkboss3seekstate
  3522.     ai AIBOSS3SEEKENEMY
  3523.     ifspritepal 0 { } else     // a fake way of doing a ifspritepal NOT.
  3524.         move PALBOSS3RUNVELS seekplayer
  3525. ends
  3526.  
  3527. state boss3runenemystate
  3528.     ifcansee { ifactioncount 3 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS3SEEKENEMY } }
  3529.     else ai AIBOSS3SEEKENEMY
  3530. ends
  3531.  
  3532. state boss3seekenemystate
  3533.     ifrnd 2 soundonce BOS3_ROAM
  3534.     else ifactioncount 3 { resetactioncount sound BOS1_WALK }
  3535.  
  3536.     ifcansee ifcount 32 ifrnd 48 ifcanshoottarget
  3537.     {
  3538.         ifrnd 64
  3539.             ifpdistg 4096
  3540.             {
  3541.                 ai AIBOSS3RUNENEMY
  3542.                 ifspritepal 0 break
  3543.                 move PALBOSS3RUNVELS seekplayer
  3544.                 break
  3545.             }
  3546.  
  3547.         ifp palive
  3548.             ai AIBOSS3LOBENEMY
  3549.     }
  3550. ends
  3551.  
  3552. state boss3dyingstate
  3553.   ifaction ABOSS3DEAD
  3554.   {
  3555.       ifspritepal 0 break
  3556.       ifrespawn ifcount RESPAWNACTORTIME
  3557.           { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss3seekstate }
  3558.       else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  3559.   }
  3560.   ifactioncount 8 { iffloordistl 8 sound THUD action ABOSS3DEAD cstat 0 ifspritepal 0 endofgame 52 }
  3561. ends
  3562.  
  3563. state boss3lobbedstate
  3564.     ifcansee
  3565.     {
  3566.         ifaction ABOSS3LOBBING
  3567.             ifactioncount 2
  3568.         {
  3569.             shoot RPG
  3570.             resetactioncount
  3571.             ifrnd 8 ai AIBOSS3SEEKENEMY
  3572.         }
  3573.  
  3574.         ifactioncount 3 { action ABOSS3LOBBING resetcount }
  3575.     }
  3576.     else state checkboss3seekstate
  3577. ends
  3578.  
  3579. state checkboss3hitstate
  3580.     ifrnd 2 spawn BLOODPOOL
  3581.     ifdead
  3582.     {
  3583.         ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
  3584.         else
  3585.         {
  3586.             ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
  3587.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS3FROZEN strength 0 break }
  3588.         }
  3589.  
  3590.         addkills 1
  3591.         ai AIBOSS3DYING
  3592.  
  3593.         sound BOS3_DYING
  3594.         sound JIBBED_ACTOR9
  3595.  
  3596.     }
  3597.     else
  3598.     {
  3599.         ifrnd 32 { action BOSS3FLINTCH move 0 }
  3600.  
  3601.         ifspritepal 0 { }
  3602.         else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS3PALSHRINK break }
  3603.  
  3604.         soundonce BOS3_PAIN
  3605.  
  3606.         debris SCRAP1 1
  3607.         guts JIBS6 1
  3608.     }
  3609. ends
  3610.  
  3611. state boss3code
  3612.  
  3613.     ifaction ABOSS3FROZEN
  3614.     {
  3615.         ifcount THAWTIME { ai AIBOSS3SEEKENEMY spritepal 21 }
  3616.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  3617.  
  3618.         ifhitweapon
  3619.         {
  3620.             ifwasweapon FREEZEBLAST { strength 0 break }
  3621.  
  3622.             addkills 1
  3623.             lotsofglass 30
  3624.  
  3625.             ifrnd 84 spawn BLOODPOOL
  3626.             sound GLASS_BREAKING
  3627.             killit
  3628.         }
  3629.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3630.         break
  3631.     }
  3632.     ifai 0 { ifspritepal 0 ai AIBOSS3RUNENEMY else { strength BOSS3PALSTRENGTH ai AIBOSS3LOBENEMY } }
  3633.     else ifaction BOSS3FLINTCH { ifactioncount 3 ai AIBOSS3SEEKENEMY }
  3634.     else ifai AIBOSS3SEEKENEMY state boss3seekenemystate
  3635.     else ifai AIBOSS3RUNENEMY state boss3runenemystate
  3636.     else ifai AIBOSS3LOBENEMY state boss3lobbedstate
  3637.     else ifai AIBOSS3PALSHRINK state boss3palshrunkstate
  3638.  
  3639.     ifai AIBOSS3DYING state boss3dyingstate
  3640.     else
  3641.     {
  3642.         ifhitweapon state checkboss3hitstate
  3643.         else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth -1000 palfrom 63 63 }
  3644.     }
  3645. ends
  3646.  
  3647. actor BOSS3 BOSS3STRENGTH fall state boss3code enda
  3648.  
  3649.  
  3650. action ACOMMBREETH  0  3  5  1  40
  3651. action ACOMMFROZEN  0  1  5
  3652. action ACOMMSPIN   -5  1  5  1  12
  3653. action ACOMMGET     0  3  5  1  30
  3654. action ACOMMSHOOT  20  1  5   1 35
  3655. action ACOMMABOUTTOSHOOT 20 1 5 1 30
  3656. action ACOMMDYING  30  8  1  1  12
  3657. action ACOMMDEAD   38  1  1  1  1
  3658.  
  3659.  
  3660. move COMMGETUPVELS 128 -64
  3661. move COMMGETVELS 128 64
  3662. move COMMSLOW 64 24
  3663. move COMMSTOPPED
  3664.  
  3665. ai AICOMMWAIT ACOMMBREETH COMMSTOPPED faceplayerslow
  3666. ai AICOMMGET ACOMMGET COMMGETVELS seekplayer
  3667. ai AICOMMSHOOT ACOMMSHOOT COMMSTOPPED faceplayerslow
  3668. ai AICOMMABOUTTOSHOOT ACOMMABOUTTOSHOOT COMMSTOPPED faceplayerslow
  3669. ai AICOMMSPIN ACOMMSPIN COMMGETVELS spin
  3670. ai AICOMMDYING ACOMMDYING COMMSTOPPED faceplayer
  3671. ai AICOMMSHRUNK ACOMMGET COMMSLOW furthestdir
  3672.  
  3673. state checkcommhitstate
  3674.  
  3675.     ifhitweapon
  3676.     {
  3677.  
  3678.         guts JIBS6 2
  3679.  
  3680.         ifdead
  3681.         {
  3682.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ACOMMFROZEN strength 0 break }
  3683.  
  3684.             addkills 1
  3685.  
  3686.             ifwasweapon RADIUSEXPLOSION { spawn BLOODPOOL sound SQUISHED state standard_jibs state delete_enemy }
  3687.             else ifwasweapon RPG { sound SQUISHED spawn BLOODPOOL state standard_jibs state delete_enemy }
  3688.  
  3689.             sound COMM_DYING
  3690.             ai AICOMMDYING
  3691.         }
  3692.         else
  3693.         {
  3694.             soundonce COMM_PAIN
  3695.             ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AICOMMSHRUNK }
  3696.             else ifrnd 24 ai AICOMMABOUTTOSHOOT
  3697.         }
  3698.     }
  3699. ends
  3700.  
  3701. actor COMMANDERSTAYPUT COMMANDERSTRENGTH cactor COMMANDER ai AICOMMABOUTTOSHOOT enda
  3702. actor COMMANDER COMMANDERSTRENGTH
  3703.  
  3704.     state checksquished
  3705.  
  3706.     ifaction ACOMMFROZEN
  3707.     {
  3708.         fall
  3709.  
  3710.         ifcount THAWTIME { getlastpal ai AICOMMWAIT }
  3711.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  3712.  
  3713.         ifhitweapon
  3714.         {
  3715.             ifwasweapon FREEZEBLAST { strength 0 break }
  3716.             addkills 1
  3717.  
  3718.             ifrnd 84 spawn BLOODPOOL
  3719.             lotsofglass 30
  3720.             sound GLASS_BREAKING
  3721.             killit
  3722.         }
  3723.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3724.         break
  3725.     }
  3726.     ifai 0 ai AICOMMSHOOT
  3727.     else ifai AICOMMWAIT { ifcount 20 { ifcansee { ifcanshoottarget { ifrnd 96 ai AICOMMGET else ai AICOMMABOUTTOSHOOT } } else ai AICOMMGET } }
  3728.     else ifai AICOMMABOUTTOSHOOT
  3729.     {
  3730.         ifactioncount 2 { ifcansee ai AICOMMSHOOT else { ai AICOMMGET break } }
  3731.         soundonce COMM_ATTACK
  3732.     }
  3733.     else ifai AICOMMSHOOT
  3734.     {
  3735.         ifcanshoottarget
  3736.         {
  3737.             ifcount 24 ifrnd 16 ai AICOMMWAIT
  3738.             ifactioncount 2 { shoot RPG resetactioncount }
  3739.         }
  3740.         else ai AICOMMGET
  3741.     }
  3742.     else ifai AICOMMSHRUNK
  3743.     {
  3744.         ifcount SHRUNKDONECOUNT ai AICOMMGET
  3745.         else ifcount SHRUNKCOUNT sizeto 48 40
  3746.         else state genericshrunkcode
  3747.     }
  3748.     else ifai AICOMMGET
  3749.     {
  3750.         ifnotmoving ifrnd 4 operate
  3751.         ifpdistl 1024 ifp palive { sound COMM_SPIN ai AICOMMSPIN break }
  3752.  
  3753.         ifcansee
  3754.         {
  3755.             ifp phigher move COMMGETUPVELS getv geth faceplayer
  3756.             else move COMMGETVELS getv geth faceplayer
  3757.         }
  3758.         ifactioncount 8 ifrnd 2 ai AICOMMABOUTTOSHOOT
  3759.     }
  3760.     else ifai AICOMMSPIN
  3761.     {
  3762.         soundonce COMM_SPIN
  3763.         ifcount 16
  3764.         {
  3765.             ifpdistl 1280 { addphealth CAPTSPINNINGPLAYER sound DUKE_GRUNT palfrom 32 16 resetcount }
  3766.             else ifpdistg 2300 ai AICOMMWAIT
  3767.         }
  3768.         ifactioncount 52 ai AICOMMWAIT
  3769.         ifnotmoving ifrnd 32 operate
  3770.     }
  3771.  
  3772.     ifai AICOMMDYING
  3773.     {
  3774.         fall
  3775.         strength 0
  3776.  
  3777.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  3778.             { sound SQUISHED spawn BLOODPOOL state standard_jibs state delete_enemy }
  3779.  
  3780.         ifaction ACOMMDYING
  3781.             ifactioncount 8 { iffloordistl 8 sound THUD cstat 0 action ACOMMDEAD }
  3782.     }
  3783.     else
  3784.     {
  3785.         ifrnd 2 soundonce COMM_ROAM
  3786.         state checkcommhitstate
  3787.     }
  3788. enda
  3789.  
  3790.  
  3791.